介绍
区分:GID(组ID)范围,创建目的不同,权限用途不一样。
GID 划分规则
主流发行版:CentOS / Ubuntu / Debian
- 系统组(System Group):GID 在0 ~ 999(有些旧系统是 0~499)
- 普通用户组(普通组):GID ≥ 1000
对应用户UID规则一样:系统用户UID 0~999,普通用户UID≥1000。
查看配置文件
cat /etc/login.defs
里面这两行定义阈值:
SYS_GID_MIN 100
SYS_GID_MAX 999
意思:100~999 留给系统账号/组使用。
系统组(System Group)
特点
- GID 0~999
- 不是给人登录用,是给系统服务、守护进程使用
- 安装软件时自动创建:
nginx、mysql、www-data、sshd - 一般没有家目录,不能登录shell(
/sbin/nologin) - 作用:服务进程以这个组身份运行,最小权限原则,即使服务被入侵,也拿不到root权限
root组 GID=0,属于系统组。
普通用户组(User Group)
特点
- GID ≥1000
- 人为创建,供真实登录用户使用
- 执行
useradd xxx时,默认会自动创建同名组,GID≥1000 - 可以用来做权限归集:多个用户加入同一个组,共享目录文件权限
useradd 默认行为:创建用户同时创建同名普通组,叫私有用户组。
命令区分演示
# 查看所有组
cat /etc/group
# 创建普通组(默认GID≥1000)
groupadd testgroup
# 创建系统组(加 -r 参数,自动分配 0~999 的GID)
groupadd -r sys_test
✅ groupadd -r:-r = system,创建系统组
对比表
| 项目 | 系统组 | 普通用户组 |
|---|---|---|
| GID范围 | 0~999 | ≥1000 |
| 创建参数 | groupadd -r |
groupadd |
| 用途 | 后台服务、进程身份 | 登录用户,多人共享权限 |
| 创建时机 | 安装软件自动生成 | 管理员手动创建 |
| 是否允许人登录 | 一般不用于登录 | 供人登录使用 |