我想将 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...
从手册页中我无法清楚知道我应该使用哪些选项来实现这一点。
答案1
这useradd
命令将尝试添加新用户。由于您的用户已存在,因此这不是您想要的。
相反:要修改现有用户(例如将该用户添加到新组),请使用usermod
命令。
尝试这个:
sudo usermod -a -G groupName userName
(附加)开关
-a
必不可少否则,该用户将被从任何组中删除,而不在列表中。该
-G
开关采用一个(以逗号分隔的)附加组列表来将用户分配到其中。
一般来说(对于 GUI 或已经运行的进程等),用户需要注销并重新登录查看新添加的组。对于当前 shell 会话,您可以使用newgrp
:
newgrp groupName
newgrp
将组添加到当前 shell 会话。
答案2
将用户添加到组:
sudo adduser user group
从组中删除用户:
sudo deluser user group
答案3
添加现有用户后:
usermod -a -G group user
您可以需要注销并登录获取群组权限/etc/group
。
答案4
我将此作为答案发布,因为我的声誉不足以发表评论。正如@dpendolino 提到的,要使此命令的效果持续存在:
sudo usermod -a -G groupName userName
...您需要重新注销/登录。
但是,如果你需要一个快捷方式来开始使用新的群组成员资格立即地(并且你有正确的须藤权限)我发现了这个解决方法:
$ sudo su -
# su [userName]
$ groups
解释:
sudo su -
将会给你一个 root shellsu [userName]
返回到带有用户的 shellgroups
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