我在Ubuntu服务器中有一个用户john和一个用户keith
我使用添加了这些用户
sudo adduser John
sudo adduser Keith
我现在如何将john添加到Keith的组中?
我试过了:
sudo usermod -aG Keith john
但是我得到:
usermod: group 'Keith' does not exist
我需要怎么做才能解决此问题?
我在Ubuntu服务器中有一个用户john和一个用户keith
我使用添加了这些用户
sudo adduser John
sudo adduser Keith
我现在如何将john添加到Keith的组中?
我试过了:
sudo usermod -aG Keith john
但是我得到:
usermod: group 'Keith' does not exist
我需要怎么做才能解决此问题?
Answers:
您可以使用: usermod -a -G grouptoadd username
由于它远不如我想像的那么明显,所以-a -G可以,而-aG不能,我将尝试解释一下:
-G选项采用一个值或值列表。在一个值的情况下,该值可以这样给出:-GVALUE,因为不需要在选项和值之间留有空格。这只是常见的做法。
如果您的系统上有一个名为a的组,则调用-Ga会变得不明确。您是否希望用户只有一组?您在打电话给-a和-G吗?那么“ a”是-G的值吗?其余的值(到-G)在哪里?通常的做法是,任何单字母选项都可以在任何其他单字母选项之前。所以tat -xy == -yz 但是,当其中一个选项可以采用单个值(如VALUE)或多个值(如VAL1,Val2,val4等)时,这是模棱两可的。
因此,为了使命令FAILSAFE正常工作并针对所有输入正常工作,您必须将-a与-G分开
来自man usermod
:
名称
usermod-修改用户帐户
概要
usermod [选项]登录
描述
该usermod命令命令修改系统帐户文件,以反映在命令行上指定的变化。
选件
适用于usermod命令的选项为:
-a,-追加
将用户添加到补充组。仅与-G选项一起使用。
...
-G,--groups GROUP1 [,GROUP2,... [,GROUPN]]]
用户也是其成员的补充组的列表。每个组由下一个逗号分隔,中间没有空格。这些组与-g选项给定的组受到相同的限制。
如果该用户当前是未列出的组的成员,则该用户将从该组中删除。可以通过-a选项更改此行为,该选项将用户添加到当前的补充组列表中。
...