在 Linux 系统中创建系统组(System Group)时,通常是指为系统服务、后台程序或功能用户创建专用用户组,而不是普通用户组。系统组的 GID(组ID)一般位于系统保留范围内,该范围由配置文件 /etc/login.defs 中的 SYS_GID_MIN 和 SYS_GID_MAX 参数定义(例如 RHEL 7/8/9、Debian/Ubuntu 通常为 100~999 或 101~999)。创建系统组最常用的工具是 groupadd 命令,并使用 -r 或 --system 选项。

具体创建步骤如下:
1. 使用 root 权限执行命令。例如,创建一个名为 myapp 的系统组,输入:sudo groupadd --system myapp 或 sudo groupadd -r myapp。系统会自动分配一个符合系统组范围的 GID。
2. 验证创建结果。使用 getent group myapp 或 grep myapp /etc/group 查看输出,例如:myapp:x:998:。其中 998 即为系统分配的 GID,通常低于普通用户组的起始 GID(如 1000)。
3. 如果需要查看系统组 GID 范围,可以执行 sysctl 或直接查看 /etc/login.defs 文件中的相关参数,以确认新组是否符合系统组定义。
4. 创建系统组后,可以将某个系统用户加入该组,例如:sudo usermod -a -G myapp serviceuser。这样该用户就属于这个系统组,可用于权限控制、文件访问或进程管理。
还要注意:系统组与普通组的本质区别在于 GID 范围和用途。系统组不应分配给普通用户作为登录主组使用,否则可能带来潜在安全问题。此外,若发行版使用 Shadow 工具包,也可以直接编辑 /etc/group 文件手动添加系统组(例如加入 mythird:x:999:),但更推荐使用标准命令,以确保配置正确并符合系统规范。
最后,如需确认当前系统支持的系统组创建方式,可查看 groupadd 手册:man groupadd。该手册会详细说明 -r、-g 等选项的含义。总之,使用 groupadd --system 是创建系统组的标准且专业的方法,适用于大多数 Linux 发行版。

查看详情

查看详情