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 | 选项参数无效 |
| 4 | GID 已被占用 |
| 9 | 组名已存在 |
| 10 | 无法更新组的配置文件 |
结语
groupadd 命令是类 Unix 系统(Linux、FreeBSD 等)中的一款用于创建新用户组的命令,掌握其选项的使用方法可以灵活的创建用户组。
掌握 groupadd 的语法、选项及其使用示例,再结合 useradd、usermod、userdel、groupmod、groupdel 等命令,即可有效的管理系统的账户。