如何在Linux中创建组(groupadd命令)

时间:2020-03-05 15:27:14  来源:igfitidea点击:

在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:x:1010:

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

groupadd: GID '1010' already exists

当与'-o'('--non-unique')方法一起使用时,'groupadd'命令允许我们创建具有非唯一GID的组:

groupadd -o -g 1010 mygroup

创建系统组

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

系统组GID是从“ login.defs”文件中指定的系统组UD的范围中选择的,该范围不同于常规组的范围。

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

groupadd -r mysystemgroup

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

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

基本上,我们可以覆盖的是创建新组时用于自动GID选择的常规组ID和系统组ID的最大值和最小值。

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

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

使用密码创建系统组

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

'-p'('--password')选项后接密码,我们可以为新组设置密码:

groupadd -p grouppassword mygroup