将用户添加到 Linux 中的现有组中

将用户添加到 Linux 中的现有组中

我想知道使用 usermod 或 groupmod 将用户添加到另一个现有组是否有区别。示例:我们有一个名为艺术家的补充组,并且想要将罗密欧添加到该组中。

usermod -G artists romeo
groupmod -U romeo artists

我使用的是红帽9。

答案1

man页面groupmod

The groupmod command modifies the definition of the specified GROUP
by modifying the appropriate entry in the group database.

没有-U选项(shadow-utils 4.6 of 04/18/2022)。的目的groupmod是修改群组的特征,而不是修改其成员的特征。

man页面usermod

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
  A list of supplementary groups which the user is also a member of ...

  If the user is currently a member of a group which is not listed, the user
  will be removed from the group. This behaviour can be changed via the -a
  option, which appends the user to the current supplementary group list.

因此,例如,如果您的用户romeo已经是 group 的成员paintworkers,则之后:

usermod -G artists romeo

他只会是补充组的成员artists,而不是 的成员paintworkers。但是如果您使用:

usermod -aG artists romeo

他将成为这两个群体的成员。

更新:

如上所述,这对于shadow-utils2022 年 4 月 18 日的 4.6 来说是正确的。然而OP指出,shadow-utils2021年2月12日的4.9现在确实记录了-U

       -U, --users
           A list of usernames to add as members of the group.

因此大概usermod -aGgroupmod -U形式应该同样适用于更高版本的shadow-utils.

答案2

...透过树木看到森林

你所指的一切最终都会发生在/etc/group

/etc/组格式

<groupname>:x:gid:user1,user2,user_n

x = 密码字段,几乎从未使用过,会引用 /etc/gshadow 就像 /etc/passwd 引用 /etc/shadow 一样。

gid = group id,唯一的组id。约定是 < 100 个系统内容不使用,< 1000 个用于管理内容,> 1000 个其他内容。 不过不要引用我的话

对于任何组名,只需将所有用户帐户添加到该组中,并用逗号分隔。我不认为我曾经使用过usermodgroupmod考虑过用户帐户所在的补充组,我只是/etc/group直接编辑似乎更简单,更快,更容易准确地看到所有正在发生的事情。

也许唯一的一点是有一个主要群体/etc/passwd对于任何给定的用户帐户,由每个帐户的第 4 列中的 gid 指定。但是任何用户帐户所属的所有补充组都指定了/etc/group谁是哪个组的成员。然而你使用usermodgroupmod最终只是简单地改变这些东西。

usermod -G将在 /etc/group 中指定组名的列表末尾添加给定的用户帐户名。如果您将一个用户添加到一个新组,则手动编辑 /etc/group 会更容易,否则对于 5 个以上的组同时执行此命令可能比在 /etc/group 中手动执行要快一点。

groupmod -U我认为这不是一个有效的选择(在 RHEL 7 中)

groupmod --help
Usage: groupmod [options] GROUP

Options:
  -g, --gid GID                 change the group ID to GID
  -h, --help                    display this help message and exit
  -n, --new-name NEW_GROUP      change the name to NEW_GROUP
  -o, --non-unique              allow to use a duplicate (non-unique) GID
  -p, --password PASSWORD       change the password to this (encrypted)
                            PASSWORD
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files

相关内容