首页>教程>Linux 命令手册> 用户与权限管理 >Linux groupadd 命令 - 创建新用户组

Linux groupadd 命令 - 创建新用户组

groupadd 命令是类 Unix 系统(Linux、FreeBSD 等)中的一款用于创建新用户组的命令,使用 groupadd 命令可以自定义组 GID、添加初始成员、创建系统组等,在创建用户组时会把信息同步写入 /etc/group/etc/gshadow 等系统配置文件。

[!TIP]

groupadd 需要以 root 权限或者 sudo 权限执行。

组名命名规则

在 Linux 等系统中对于组名中使用的字符有一定的要求:

  • 只允许使用大小写字母、数字、下划线、减号,在末尾可以使用美元符号
  • 名字不能以减号开头,不能使用纯数字、... 来命名组名
  • 组名最多为 32 个字符

相关功能命令对比

如下给出与用户组管理相关的几个命令,要注重区分其对应的功能:

  • groupadd:创建新用户组
  • groupmod:修改已有用户组的信息
  • groupdel:删除系统中已存在的用户组

groupadd 命令语法结构

groupadd 命令的语法非常的好理解,其基本的语法结构形式为:

groupadd [选项] 新组名

语法结构各部分的解释说明:

  • [选项]:可选值,用于控制新组时的具体行为
  • 新组名:需要创建的新用户组的名称

groupadd 命令使用示例

如下给出一些 groupadd 命令的简易的使用示例。

[!NOTE]

不支持直接创建 NIS / LDAP 组,此类组需在对应的服务端创建

创建普通用户组

不适用任何选项,执行命令会创建一个用户组,系统会自动为其分配 GID:

sudo groupadd testgroup

指定 GID 创建用户组

使用 -g--gid 选项为新建的用户组指定组的 GID,默认情况下 GID 需要保持唯一性:

sudo groupadd -g 1005 devgroup

创建系统用户组

使用 -r--system 选项指定创建的用户组为系统用户组:

sudo groupadd -r sysgroup

[!NOTE]

系统用户组的 GID 的数值取自 SYS_GID_MIN~SYS_GID_MAX 指定的区间

强制创建已存在的组

使用 -f--force 选项强制创建用户组:

groupadd -f testgroup

[!NOTE]

如果指定的用户组已存在,不会返回创建错误状态码,而是返回创建成功的状态码。

创建重复 GID 的用户组

使用 -o--non-unique 允许使用已使用的 GID:

groupadd -o -g 1005 dupgroup

创建组并添加初始成员

使用 -U--users 选项指定使用逗号分隔的用户列表,可以在创建用户组时添加初始成员:

groupadd -U user1,user2 workgroup

groupadd 命令选项详解

如下给出 groupadd 命令的选项的详细的解释说明:

选项详细功能说明
-f, --force强制创建用户组,如果组已存在则直接退出并返回成功,在配合 -g 选项一起使用时,如果 GID 重复则自动分配新的 GID 值
-g, --gid GID指定用户组的 GID,默认要求唯一性
-h, --help显示命令帮助信息并退出
-K, --key KEY=VALUE覆盖 /etc/login.defs 文件中的默认配置,可同时指定多个
-o, --non-unique允许使用的 GID 值不唯一
-p, --password PASSWORD设置组的密码,密码必须是加密后的密码,密码为 crypt 加密格式
-r, --system指定创建的用户组为系统用户组
-R, --root CHROOT_DIR在指定的 chroot 目录应用变更
-P, --prefix PREFIX_DIR为指定的 PREFIX_DIR 前缀目录修改配置
-U, --users USER1[,USER2,...[,USERN]]]创建组时直接为组添加初始成员,用户名以逗号分隔

关键配置文件说明

在使用 groupadd 命令新建用户组的时候,会修改一些配置文件,如下给出与用户组相关的一些配置的解释说明:

文件路径作用说明
/etc/group存储用户组的信息
/etc/gshadow存储用户组需要加密的信息
/etc/login.defs隐藏密码相关的全局配置策略

groupadd 命令的退出状态码

groupadd 命令执行完成后会返回一个状态码,根据其返回的值,可以判断其执行所处的状态:

状态码含义说明
0执行成功
1无法更新密码文件
2命令语法错误
3选项参数无效
4GID 已被占用
9组名已存在
10无法更新组的配置文件

结语

groupadd 命令是类 Unix 系统(Linux、FreeBSD 等)中的一款用于创建新用户组的命令,掌握其选项的使用方法可以灵活的创建用户组。

掌握 groupadd 的语法、选项及其使用示例,再结合 useraddusermoduserdelgroupmodgroupdel 等命令,即可有效的管理系统的账户。