我正在运行 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 即可运行。为什么?我应该只需要注销并重新登录,而不是完全重启,对吗?