Maxx
#1
我想添加Apache用户(www-data
)至 audio
组。 我读过手册页。 useradd
但我运气不好。 我正在运行xubuntu11.10。 这就是我要做的:
$ sudo useradd -G audio www-datauseradd: user 'www-data' already exists
如果我把 -G
选项,bash,打印帮助信息 useradd
:
$ sudo useradd audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR base directory for the home directory...
从手册页我不清楚我应该使用哪些选项来完成这项工作。
该 useradd
命令将尝试添加一个新用户。 由于您的用户已经存在,这不是您想要的。
相反:要修改现有用户,如将该用户添加到新组,请使用 usermod
命令。
试试这个:
sudo usermod -a -G groupName userName
一般来说(对于GUI,或者对于已经运行的进程等。),用户 将需要注销并重新登录 看到他们的新组添加。 对于当前shell会话,您可以使用 newgrp
:
newgrp groupName
添加到现有用户后:
usermod -a -G group user
您可能需要 登出及登入 获取组权限 /etc/group
.
我通常使用
sudo gpasswd -a myuser mygroup
我将此作为答案发布,因为我没有足够的声誉发表评论。 正如@dpendolino所提到的,为了这个命令的效果持续存在:
sudo usermod -a -G groupName userName
...您需要再次注销/登录。
但是,如果您需要一个快捷方式来开始使用新的组成员身份 立即 (你有正确的 须藤 1)我已经找到了这个解决方案:
$ sudo su -# su [userName]$ groups
解释说明:
-
sudo su -
会给你一个根壳
-
su [userName]
将您与您的用户返回到shell
-
groups
当运行现在将显示您添加的组与 usermod -aG
命令
在我的情况下,我试图将'docker'组添加到我的用户
以前:
$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd
之后:
$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName
会工作得很好,但我不得不这样做 重新启动 完全,只是注销并重新登录没有完成这项工作。..
在Ubuntu上,自 登录为 root
未启用,用户在 sudo
组可以提升某些受限命令的特权。 任何受限制的命令都必须在前面加上 sudo
提升特权。
sudo usermod -a -G 团体 用户
将添加现有用户 user
到名为的补充组 group
. 用户的主组将保持不变。
要永久地将用户添加到组,请运行以下命令:
sudo usermod -a -G <groupname> <username>
然后注销并重新登录(或在必要时重新启动)。
解释说明:
该 usermod
命令 将修改 /etc/group
档案 在与该组相关的行中列出指定的用户名。 如果你跑 grep <groupname> /etc/group
,您应该在输出中看到您的用户名。
在Linux中,每个进程都被分配给一个用户和组,任何子进程都继承父进程的用户和组。 因此,要使此更改生效并propogate,您需要注销并重新登录(此时 /etc/group
被读取和使用)。 在Wayland上,我发现完全重新启动是必要的。
如果运行命令 groups
,您可以查看当前进程是否具有预期的组。