我刚刚安装了 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
过程。