在 Linux 中使用 groupadd 创建组

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

在本文中,我们将讨论如何使用 groupadd 命令在 Linux 中创建新组。

groupadd 命令语法

groupadd 命令的常规语法如下:

groupadd [OPTIONS] GROUPNAME

只有 root 或具有 sudo 特权的用户才能创建新组。

调用时, groupadd 使用命令行上指定的选项以及在 /etc/login.defs 文件中指定的默认值创建一个新组。

在 Linux 中创建组

要创建新的组类型, 输入 groupadd 然后输入用户名。

例如,要创建一个名为 mygroup 您的新组,请运行:

groupadd mygroup

该命令将新组的条目添加到 /etc/group/etc/gshadow 文件。

创建群组后,您可以开始将用户添加到群组中

如果已经存在相同名称的组,则系统将显示一条错误消息,如下所示:

groupadd: group 'mygroup' already exists

要抑制错误消息(如果该组存在)并使命令成功退出,请使用 -f(--force) 选项:

groupadd -f mygroup

创建具有特定 GID 的组

在 Linux 和类似 Unix 的操作系统中,组由名称和唯一的正整数的 GID 标识。

默认情况下,创建新组时,系统会从 login.defs 文件中指定的组 ID 范围中分配下一个可用的 GID  。

使用 -g(--gid) 选项创建具有特定 GID 的组。

例如,要创建一个名为 mygroup GID 为 1010 的组, 请输入:

groupadd -g 1010 mygroup

您可以通过列出所有组并使用 grep 过滤结果来验证组的 GID  :

getent group | grep mygroup
mygroup❌1010:

如果已经存在具有给定 GID 的组,则会出现以下错误:

groupadd: GID '1010' already exists

-o(--non-unique) 选项一起使用时,该 groupadd 命令可让您创建具有非唯一 GID 的组:

groupadd -o -g 1010 mygroup

创建系统组

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

系统组 GID 的范围已经在 login.defs 文件中指定,该范围与常规组的范围不同。

使用 -r(--system) 选项创建系统组。例如,要创建一个名为 mysystemgroup 您的新系统组,请运行:

groupadd -r mysystemgroup

覆盖 /etc/login.defs 的默认值

您可以通过 -K(--key) 选项后跟 KEY=VAL 覆盖 /etc/login.defs 文件中指定的默认值。

基本上,您可以覆盖的是常规组 ID 和系统组 ID 的最大值和最小值,创建新组时会在其中自动选择 GID 。

假设您要创建一个 GID 在 1200 到 1500 之间的新组。为此,请指定最小/最大值,如下所示:

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

使用密码创建系统组

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

您如果想设置设置新组的密码,使用 -p(--password) 选项后跟密码:

groupadd -p grouppassword mygroup

结论

在 Linux 中,您可以使用以下 groupadd 命令创建新的组。

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