Bionic - 使用 usermod -aG 添加组直到下次重启才会生效

Bionic - 使用 usermod -aG 添加组直到下次重启才会生效

我刚刚安装了 Xubuntu 18.04 (Bionic) 并遇到了这个问题,我想将其报告为启动板上的一个错误,但首先想到从这里确认一下。问题是,当我像下面这样向用户添加一个组时,它应该在下次用户登录时生效,对吗?

sudo usermod -aG docker prahlad

我记得这种行为在 16.04 之前一直有效,但今天我多次注销并重新登录,但当我通过运行命令查看我的组时groups,我无法看到添加到其中的 docker。但是,当我创建一个新的 shell 时,我能够看到新组:

su prahlad -

当然,当我完全重启笔记本电脑时,我就能够看到 docker 组了。有人能确认这是不是 Bionic 中引入的新问题吗?或者,这只是在安装了 docker 后才发生的?

答案1

这不是一个“问题”,而只是团体运作的方式。

login程序读取/etc/groups以设置初始进程的组成员身份,该身份将向下继承到其创建的进程。

最终,一个进程会sudo usermod -aG docker prahlad执行更新/etc/groups,但根据设计,它不会更改运行的进程的父进程的父进程的组成员身份sudo usermod -aG docker prahlad,也不会运行login来编辑进程的组成员身份。

作为一名长期的系统管理员,我确信我希望能够将一些随机用户添加到一些随机组中,而不会干扰我的组成员身份。

如果您想立即使用新的组成员身份,您可以阅读man newgrp并执行以下操作:

sudo usermod -aG docker prahlad
newgrp docker

或者您可以注销并重新执行该login过程。

相关内容