在 DEB 安装后将用户添加到组而无需重新启动

Posted

技术标签:

【中文标题】在 DEB 安装后将用户添加到组而无需重新启动【英文标题】:Add user to group without restart in DEB postinstall 【发布时间】:2021-10-07 13:33:01 【问题描述】:

在我的 deb 包中,我将用户添加到 postinst 脚本中的“拨出”组:

usermod -aG dialout $SUDO_USER

我希望在不重新启动的情况下应用新设置:

newgrp dialout

但是有一个问题:newgrp 将用户登录到新会话,所以我们在安装时挂起(您应该在控制台中输入exit)。所以,这样的命令不适合 deb-postinstall。

还有其他可能吗?

【问题讨论】:

我希望您知道dialout 是一个保留的系统组? wiki.debian.org/SystemGroups @tripleee 当然 【参考方案1】:

安装脚本不能在不注销现有用户的情况下更改他们的组(它也不能这样做)。但是您可以向安装用户显示一条说明,建议他们(将自己添加到新组和)exec sg dialout,如果他们想避免退出并重新登录。

也许还注意到postinst(或通常任何打包脚本)不能调用需要用户交互的命令。系统应该能够在完全无人看管的情况下安装软件包。

【讨论】:

以上是关于在 DEB 安装后将用户添加到组而无需重新启动的主要内容,如果未能解决你的问题,请参考以下文章

从另一个版本重新安装 deb 包

如何在Debian和Ubuntu下重新打包Deb文件

重新索引缺少类别的多级索引

添加密钥到authorized_users,无需重启sshd

Azure Active Directory 将服务主体添加到组 - 无需分配目录权限

添加到浏览器历史记录而无需重新加载页面