![为什么我的用户没有被分配到我自己添加的组?](https://linux22.com/image/1156301/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E7%94%A8%E6%88%B7%E6%B2%A1%E6%9C%89%E8%A2%AB%E5%88%86%E9%85%8D%E5%88%B0%E6%88%91%E8%87%AA%E5%B7%B1%E6%B7%BB%E5%8A%A0%E7%9A%84%E7%BB%84%EF%BC%9F.png)
我正在全新安装 Ubuntu 18.04。在安装过程中,我选择了最小安装而不是标准安装。
docker
我刚刚使用以下命令将自己添加到该组中
sudo usermod -a -G docker danny
我已经退出了 GNOME 会话(我尝试了两种方法,一种是从顶部菜单,另一种是从搜索“登出“)。但我的用户没有被分配到该docker
组。但是,如果我su
进入我的用户,该组就在那里,所以前面的命令没有失败。
$ groups
danny adm cdrom sudo dip plugdev lpadmin sambashare
$ groups danny
danny adm cdrom sudo dip plugdev lpadmin sambashare docker
$ su - danny
$ groups
danny adm cdrom sudo dip plugdev lpadmin sambashare docker
我必须完全重新启动操作系统才能使更改生效。
我已经重新启动了,但是这是的输出id
;
$ id
uid=1000(danny) gid=1000(danny) groups=1000(danny),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),999(docker)
但我想知道为什么注销还不够?
PS 我可以通过将自己添加到任何随机组来重现此行为,而不仅仅是docker
。
答案1
你也可以使用以下newgrp
命令加入新组:
jean@myLinux:~$ id
uid=1000(jean) gid=1000(jean) groups=1000(jean),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),129(vboxusers)
jean@myLinux:~$ newgrp - newgroup
jean@myLinux:~$ id
uid=1000(jean) gid=1003(newgroup) groups=1003(newgroup),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),129(vboxusers),1000(jean)
我必须承认,我和你一样惊讶注销/登录没有分配新组,但su -
实际上却分配了。
答案2
您无需重新启动即可将附加组分配给您的用户。在正在运行的 shell 中,组分配不会改变,但在新 shell 中会改变:
jean@myLinux:~$ sudo groupadd tester
[sudo] password for jean:
jean@myLinux:~$ sudo usermod -a -G tester jean
jean@myLinux:~$ id
uid=1000(jean) gid=1000(jean) groups=1000(jean),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),129(vboxusers)
jean@myLinux:~$ su - jean
Password:
jean@myLinux:~$ id
uid=1000(jean) gid=1000(jean) groups=1000(jean),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),129(vboxusers),1003(tester)