如何将现有用户添加到现有用户组并验证其是否已添加?

如何将现有用户添加到现有用户组并验证其是否已添加?

我正在运行 Ubuntu 17.04。

我只是想将我现有的用户帐户添加到 lxd 组,并希望能够使用“groups”命令验证我是否在该组中。

我尝试过如何将现有用户添加到现有组?但我对我的发现感到困惑:

列出我当前的群组:

drunkard@thebar:~$ groups
drunkard adm cdrom sudo dip plugdev lpadmin sambashare

尝试将 lxd 组添加到我的用户帐户:

drunkard@thebar:~$ sudo usermod -a -G lxd drunkard
[sudo] password for drunkard:

列出当前的组:

drunkard@thebar:~$ groups
drunkard adm cdrom sudo dip plugdev lpadmin sambashare

当然。我必须注销并重新登录。因此,作为捷径,我将使用以下命令以子 shell 身份登录:

drunkard@thebar:~$ su - drunkard
Password: 

现在,列出的组肯定应该包括 lxd:

drunkard@thebar:~$ groups
drunkard lxd

啊?发生了什么?现有的群组去哪了?我使用了 -a 选项!

好的,感到很困惑,我退出了那个 shell 并尝试了这个:

drunkard@thebar:~$ sudo usermod -a -G lxd,drunkard,adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare drunkard
drunkard@thebar:~$ su - drunkard
Password: 
drunkard@thebar:~$ groups
drunkard adm cdrom sudo dip plugdev lpadmin sambashare lxd

好的,它们在那里,但是当我完全退出并再次登录时,我发现缺少了“lxd”:

drunkard@thebar:~$ groups
drunkard adm cdrom sudo dip plugdev lpadmin sambashare

四处搜寻后,我发现了这个命令:

drunkard@thebar:~$ getent group lxd
lxd:x:136:drunkard

显然我的用户帐户在 lxd 组中,但是为什么组命令没有显示它?

drunkard@thebar:~$ groups
drunkard adm cdrom sudo dip plugdev lpadmin sambashare

我在这里忽略了什么细微差别?


编辑#1:lxc 命令似乎表明我不在 lxd 组中:

drunkard@thebar:~$ lxc launch ubuntu: first-machine
Permission denied, are you in the lxd group?
drunkard@thebar:~$ getent group lxd
lxd:x:136:drunkard
drunkard@thebar:~$ sudo adduser drunkard lxd
[sudo] password for drunkard: 
The user `drunkard' is already a member of `lxd'.
drunkard@thebar:~$

编辑#2:

重启后,我现在可以看到我的用户帐户已添加到组中,并且命令lxc无需 sudo 即可运行。为什么?我应该只需要注销并重新登录,而不是完全重启,对吗?

相关内容