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
评论
不完全是这个问题的要求
– Tejendra
2014年9月3日上午8:10
@Tejendra的评论似乎以使用useradd为前提/强制回答OP的问题为前提;也许这个答案只是遗漏了一些单词,以表明adduser / deluser是更好的选择。
–圣人
15年7月28日在19:39
对我来说,更简单的界面更好,这就是为什么我喜欢这一界面。
–贝塔利斯塔
16年8月11日在10:35
这正是所要提出的问题。 @knocte,是的,我认为这是Debian特有的
–澳大利亚
16-11-14在12:58
@Auspex我可以确认它在Red Hat上不起作用。
– Stibu
17年2月22日在9:43
#3 楼
添加到现有用户后:usermod -a -G group user
您可能需要注销并登录才能从
/etc/group
获得组权限。 评论
请将该部分设为“需要注销和登录”粗体。
–金权
2013年12月17日下午6:36
仅供参考:我认为id命令应该指示您已添加到该组而无需退出。 id myuser
– ficuscr
2014年1月3日在16:57
我需要在Ubuntu 14.10上注销并重新登录。
–A.Danischewski
2015年4月1日下午0:32
#4 楼
我通常使用sudo gpasswd -a myuser mygroup
评论
usermod在我的系统ubuntu 14.04上不可用。这很棒!
–提请
2014年6月24日15:45
这在Debian Stretch上也很有效,其中未安装usermod。
–乔什·哈布达斯(Josh Habdas)
19 Mar 29 '19在6:36
#5 楼
我将其发布为答案,因为我没有足够的声誉来发表评论。正如@dpendolino提到的那样,要使此命令的效果持续存在:sudo usermod -a -G groupName userName
...您需要再次注销/登录。
但是,如果您需要快捷方式来立即开始使用新的组成员身份(并且您具有正确的sudo特权),则可以找到以下解决方法:
$ sudo su -
# su [userName]
$ groups
说明:
sudo su -
将为您提供根shell su [userName]
与您的用户一起返回shell groups
现在运行时,将显示使用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
评论
根据Aaron McDaid对另一个答案的评论,应用组成员身份的另一个选项是sudo login -f <用户名>。
–大卫·奥利弗(David Oliver)
1月4日20:08
#6 楼
在Ubuntu上,由于未启用以root
登录,因此sudo
组中的用户可以提升某些受限命令的特权。必须在sudo
之前添加任何受限制的命令才能提升特权。sudo usermod -a -G group user
会将现有用户
user
添加到名为group
的补充组中。用户的主要组将保持不变。#7 楼
sudo usermod -a -G groupName userName
可以正常工作,但是我必须完全重新启动,只是注销并再次登录没有完成工作...
评论
sudo usermod -a -G [group-name] [user-name]:对于那些只看了标题后才看答案的人来说,这是一个方便
–Programster
13年11月11日14:50
我认为现在首选的方式是sudo adduser用户组。它是更简单,更简洁的语法。请参阅@Bai的回复。
–ctbrown
2014年8月14日14:20
有没有办法解决“注销并返回”部分?某些类型的update-groups命令,也许吗?
–继续使用
16 Mar 19 '16 at 0:05
@ con-f-use,如果可以运行sudo login -f YOURUSERNAME,它将启动一个新的Shell会话。使用id命令验证新会话是否在正确的组集中。但是,这不是“全局”-不适用于已经打开的终端。因此,实际上,注销是最好的选择
–亚伦·麦克戴(Aaron McDaid)
17 Mar 31 '14:57
您可以使用newgrp [group-name]命令将新组添加到当前会话的用户,而无需注销和再次登录。不过,仅当前会话会受到影响。
– stenix
17年11月21日在10:17