如何将用户添加到另一个用户组?


9

我在Ubuntu服务器中有一个用户john和一个用户keith

我使用添加了这些用户

sudo adduser John 
sudo adduser Keith

我现在如何将john添加到Keith的组中?

我试过了:

sudo usermod -aG Keith john

但是我得到:

usermod: group 'Keith' does not exist

我需要怎么做才能解决此问题?

Answers:


17

您可以使用: 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选项更改此行为,该选项将用户添加到当前的补充组列表中。

  • ...


可能有助于解释为什么拆分选项会起作用,以及它们是什么选项。
Journeyman Geek

@JourneymanGeek:完成!运行...
Tamara Wijsman 2012年

超级用户应该知道如何的人,恕我直言...
ЯрославРахматуллин

@ЯрославРахматуллин,超级用户确实应该。但是,大多数问题由“非超级用户”提出,并由“超级用户” 回答。linux的新手没有理由知道man命令。无论如何,您给出的命令与OP所执行的命令相同,您的回答并不能解释为什么它对她不起作用。至少在我的系统上,拆分选项没有区别。

好吧,首先您不能运行sudo adduser name sudo adduser name2,因为那是useradd的无效语法。useradd使用一个用户名参数。要添加两个用户,您必须运行两次命令。IE用户添加Arne; useradd kari。然后,您可以将kari添加到arnes组,反之亦然。在观看了这些问题中的更多问题并正确回答后,病态变得越来越耐心。诺言!
ЯрославРахматуллин

0

如果完全按照问题中的显示执行命令,则您不会创建用户Keith,而仅创建用户John。要在命令行上一个接一个地执行命令,您需要使用;或分隔它们&&。否则,将仅运行第一个命令:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

如果你没有正确地执行它们,小心大写字母。在您的问题中,您同时提到“约翰”和“约翰”。这应该工作:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john

0

您还可以手动编辑配置文件:

sudo nano /etc/password
sudo nano /etc/group

分配ID和其他字段。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.