我在 Ubuntu 服务器上有一个用户 john 和一个用户 keith
我使用以下方式添加了这些用户
sudo adduser John
sudo adduser Keith
我现在怎样才能将约翰添加到基思的群组中?
我试过:
sudo usermod -aG Keith john
但我明白:
usermod: group 'Keith' does not exist
我需要做什么才能解决这个问题?
答案1
您可以使用:usermod -a -G grouptoadd username
由于为什么 -a -G 可以而 -aG 不可以并不像我想象的那么明显,所以我将尝试解释它:
-G 选项可以采用一个值或一个值列表。如果采用一个值,则可以像这样给出值:-GVALUE,因为选项和值之间不需要有空格。这只是常见的做法。
如果您的系统上有一个名为 a 的组,那么调用 -Ga 就会变得模棱两可。您想让用户只有一个组 a 吗?您是在调用 -a 和 -G 吗?那么“a”是 -G 的值吗?其余的值(对 -G)在哪里?任何单字母选项都可以放在任何其他单字母选项之前,这也是一种常见做法。所以 tat -xy == -yz。但是,当其中一个选项可以采用单个值(如 VALUE)或多个值(如 VAL1、Val2、val4 等)时,这会产生歧义。
因此,为了使命令 FAILSAFE 并对所有输入正常工作,您必须将 -a 与 -G 分开
姓名
usermod—修改用户账户
概要
用户模式[选项] 登录
描述
这用户模式命令修改系统帐户文件以反映命令行上指定的更改。
选项
适用于用户模式命令是:
-a,--附加
将用户添加到补充团体(s)。仅与-G选项。
...
-G,--群组组 1[,组 2,...[,组 N]]]
用户也是其成员的补充组列表。每个组与下一个组之间用逗号分隔,中间没有空格。这些组受到与使用-G选项。
如果用户当前是未列出的组的成员,则该用户将被从该组中删除。此行为可以通过-A选项,将用户附加到当前补充组列表。
...
答案2
如果您完全按照问题中所示执行命令,则您不会创建用户 Keith,而只会创建用户 John。要在命令行上依次执行命令,您需要使用;
或将它们分开&&
。否则,只会运行第一个命令:
sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.
如果你做过正确执行它们,注意大写字母。在你的问题中,你提到了“John”和“john”。这应该有效:
sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
答案3
您也可以手动编辑配置文件:
sudo nano /etc/password
sudo nano /etc/group
分配ID和其他字段。