如何将现有用户添加到现有组?
我想将Apache用户( www-data
)添加到audio
组。 我已经阅读了useradd
的手册页,但我没有运气。 我正在运行xubuntu 11.10。 这就是我正在做的事情:
$ sudo useradd -G audio www-data useradd: user 'www-data' already exists
如果我省略了-G
选项bash,则打印useradd
的帮助信息:
$ sudo useradd audio www-data Usage: useradd [options] LOGIN Options: -b, --base-dir BASE_DIR base directory for the home directory...
我从手册页中不清楚我应该使用哪些选项来完成这项工作。
useradd
命令将尝试添加新用户。 由于您的用户已经存在,这不是您想要的。
相反:要修改现有用户,例如将该用户添加到新组,请使用usermod
命令。
试试这个:
sudo usermod -a -G groupName userName
用户需要注销并重新登录才能看到他们添加的新组。
-
-a
(追加)开关是必不可少的。 否则,将从任何组中删除用户,而不是列表中的用户。 -
-G
开关采用(逗号分隔的)其他组列表来分配用户。
将用户添加到组:
sudo adduser user group
从组中删除用户:
sudo deluser user group
添加到现有用户后:
usermod -a -G group user
您可能需要注销并登录才能从/etc/group
获取组权限。
我通常使用
sudo gpasswd -a myuser mygroup
在Ubuntu上,由于未启用以root
身份登录,因此sudo
组中的用户可以提升某些受限命令的权限。 必须在sudo
之前添加任何受限制的命令以提升权限。
sudo usermod -a -G group user
将现有用户user
添加到名为group
的补充group
。 用户的主要组将保持不变。
我发布这个作为答案,因为我没有足够的声誉来评论。 正如@ dpendolino所提到的,这个命令的效果仍然存在:
sudo usermod -a -G groupName userName
…你需要再次注销/登录。
但是,如果您需要一个快捷方式来立即开始使用新的组成员身份(并且您拥有正确的sudo权限),我发现了这种解决方法:
$ sudo su - # su [userName] $ groups
说明:
-
sudo su -
会给你一个root shell -
su [userName]
返回您与用户的shell - 现在运行的组将显示您使用
usermod -aG
命令添加的组
在我的情况下,我试图将“docker”组添加到我的用户
之前:
$ groups userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd
后:
$ groups userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker