在 Linux,组用于组织和管理用户帐户。组的主要目的是为指定的资源定义权限并在组内用户之间共享权限。例如读取,写入或执行权限

在本教程中,我们将讨论如何在 Linux 使用 groupadd 命令创建组。只有root用户或具有 sudo 权限的用户才能创建组。

groupadd 命令

groupadd 命令的语法形式是 groupadd [OPTIONS] GROUPNAMEOPTIONS groupadd 命令的选项,GROUPNAME 组的名称。

当运行 groupadd 命令时,groupadd 命令将会根据指定的选项以及 /etc/login.defs 文件中指定的默认值创建组。

groupadd 命令创建组

要创建新的组,请运行 groupadd 命令,然后输入组的名称。命令创建组的记录并添加到文件 /etc/group  和 /etc/gshadow。

如果已经存在相同名称的组,终端将会打印错误消息 groupadd: group 'mygroup' already exists。

如果禁用错误消息的输出,请使用 -f / --force 选项强制创建组。groupadd -f mygroup 命令创建组 mygroup

groupadd mygroup
groupadd -f mygroup

groupadd 命令指定 GID 创建组

在 Linux/Unix 操作系统,组由其名称和唯一的 GID 标识。默认情况下,创建组时,系统会从 /etc/login.defs 文件确定下一个可用的 GID。

如果需要创建具有指定 GID 的组,请使用 groupadd 命令的 -g / --gid 选项创建组。

当指定 GID 的组已经存在时,groupadd 命令将会打印错误消息,groupadd: GID '1010' already exists。

你也可以使用 groupadd 命令的 -o / --non-unique 选项,创建具有非唯一GID的组,但 Linux 系统管理员是很少这样做的。

例如groupadd -g 1010 mygroup将会创建mygroup并指定GID 1010。要验证组是否创建成功,可以运行命令列出所有组并使用grep命令过滤结果。

groupadd -g 1010 mygroup
#groupadd -o -g 1010 mygroup
getent group | grep mygroup
mygroup:x:1010:

groupadd 命令创建系统组

系统和普通组之间没有真正的区别。通常,系统组用于某些特殊的系统操作目的,例如创建备份或进行系统维护。

系统组的 GID 是从  /etc/login.defs 文件指定的ID范围选择,该范围不同于普通组的范围。要创建系统组请使用 groupadd 命令的-r / --system选项创建组。

例如命令 groupadd -r mysystemgroup 创建系统组 mysystemgroup

groupadd -r mysystemgroup

覆盖默认 /etc/login.defs 值

您也可以覆盖创建组时用于自动选择 GID 的最大值和最小值的范围,此值都可以为系统组和普通组指定。

groupadd 命令的 -K / --key 选项使您可以覆盖 /etc/login.defs 文件中指定的默认值。

假设您要创建 GID 是在 1200 至 1500 之间的组,在运行 groupadd 命令创建组时,请指定最小 / 最大值。

groupadd -K GID_MIN=1200 -K GID_MAX=1500 mygroup

groupadd 命令设置组密码

向组中添加密码没有实际用途,并且可能会导致安全问题,因为多个用户需要知道该密码。

如需要为组设置密码,可以使用 groupadd 命令的 -p / --password 选项,后跟组的密码,可让你为创建的组设置密码。

groupadd -p grouppassword mygroup

结论

在 Linux ,你可以使用 groupadd 命令创建组。如有任何疑问,请随时发表评论。

相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。