groupadd 是 Linux 系统中用于创建新用户组的命令。它是系统管理员进行用户和权限管理的核心工具之一,为用户组管理提供了基础。
📝 命令简介与基本语法
groupadd 命令用于在系统中创建一个新的用户组。新组的信息会被添加到 /etc/group 和 /etc/gshadow 这两个关键的系统文件中。
基本命令格式如下:
bash
groupadd [选项] 新组名称
执行此命令通常需要 root 权限,因此常与 sudo 一起使用。
🛠️ 常用选项详解
groupadd 提供了多个选项来定制新组的属性。
- -g, --gid GID:为新组指定一个特定的组ID(GID)。
- GID 必须是唯一的非负数。
- 如果不指定,系统会自动分配一个大于等于 GID_MIN 且未被使用的最小可用 GID。
- 普通用户的 GID 通常从 1000 开始,1-999 通常预留给系统组。
- -r, --system:创建一个系统组。
- 系统组的 GID 通常在一个较小的范围内(例如 SYS_GID_MIN 到 SYS_GID_MAX),具体值在 /etc/login.defs 文件中定义。
- -f, --force:强制执行。
- 如果指定的组已经存在,命令会直接成功退出而不报错。
- 如果与 -g 选项一起使用,且指定的 GID 已存在,系统会忽略该 GID,并自动选择一个唯一的 GID 来创建组。
- -o, --non-unique:允许创建一个 GID 非唯一的组。
- 此选项必须与 -g 一起使用,允许新组使用一个已经存在的 GID。通常不推荐在生产环境中使用。
- -p, --password PASSWORD:为新组设置一个初始密码。
- 注意 :该密码需要是经过 crypt() 函数加密后的字符串。
- 此选项极不安全,因为密码(即便是加密形式)会在进程列表中明文显示,应尽量避免使用。
- -K, --key KEY=VALUE:覆盖 /etc/login.defs 中的默认配置项。
- 可以多次使用此选项来覆盖多个值,例如 -K GID_MIN=100 -K GID_MAX=499。
- -U, --users USER1,USER2,...:将指定的用户列表作为初始成员添加到新组中。
- -R, --root CHROOT_DIR:在指定的 CHROOT_DIR 目录下应用更改,并读取其下的配置文件。
- -P, --prefix PREFIX_DIR:将更改应用于指定目录下的配置文件,用于交叉编译环境。
- -h, --help:显示帮助信息并退出。
⚙️ 核心选项速查表
| 选项 | 功能描述 | 示例 |
|---|---|---|
| -g, --gid GID | 为新组指定一个特定的组ID(GID) | groupadd -g 1500 mygroup |
| -r, --system | 创建一个系统组 | groupadd -r systemgroup |
| -f, --force | 强制创建,若组已存在则成功退出 | groupadd -f mygroup |
| -o, --non-unique | 允许创建一个GID非唯一的组 | groupadd -g 1000 -o mygroup |
| -p, --password | 为新组设置一个加密后的密码(不安全) | groupadd -p '加密密码' mygroup |
| -U, --users | 将指定用户作为初始成员添加到新组 | groupadd -U user1,user2 mygroup |
| -K, --key | 覆盖/etc/login.defs中的默认配置 | groupadd -K GID_MIN=500 mygroup |
| -R, --root | 在指定的chroot目录下执行操作 | groupadd -R /path/to/chroot mygroup |
| -h, --help | 显示帮助信息 | groupadd -h |