我正在使用 Amazon Linux AMI 映像进行开发。我想将默认用户“ec2-user”添加到组“docker”中,如下所示:
sudo groupadd docker
sudo gpasswd -a ec2-user docker
当我以用户身份登录ec2-user
并运行时groups ec2-user
,它显示:
ec2-user : ec2-user wheel docker
这似乎表明“ec2-user”已添加到组“docker”。但是,如果我运行不带任何参数的命令(这应该与因为我以 身份登录时groups
相同),它会显示:groups ec2-user
ec2-user
ec2-user wheel
它告诉我 ec2-user 尚未加入“docker”组(实际上它没有被添加到这个组,因为当我尝试访问属于“docker”组的某些文件时报告了权限错误)。
如果我尝试以这种方式将“ec2-user”添加到组中,则不会发生这种情况:
sudo gpasswd -a ${USER} docker
我发现我可以将其他用户名(如“harry”)添加到如下所示的组中,没有任何问题:
sudo gpasswd -a harry docker
我的问题是导致此行为的原因是什么?将此特定用户名“ec2-user”添加到组时似乎存在问题,但我不知道为什么会发生这种情况。任何帮助都非常感谢。谢谢。
答案1
当前 shell 是在你将自己添加到组之前初始化的,因此它无法反映你后来对组成员身份的更改。你可以
exec sg docker
用一个新的 shell 替换当前的 shell,该 shell 明确切换到您自己添加的组,或者只是注销并重新登录。