linux教程-普通用户组 vs 系统组

介绍

区分: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)

特点

  1. GID 0~999
  2. 不是给人登录用,是给系统服务、守护进程使用
  3. 安装软件时自动创建:nginx、mysql、www-data、sshd
  4. 一般没有家目录,不能登录shell(/sbin/nologin)
  5. 作用:服务进程以这个组身份运行,最小权限原则,即使服务被入侵,也拿不到root权限

root组 GID=0,属于系统组。

普通用户组(User Group)

特点

  1. GID ≥1000
  2. 人为创建,供真实登录用户使用
  3. 执行 useradd xxx 时,默认会自动创建同名组,GID≥1000
  4. 可以用来做权限归集:多个用户加入同一个组,共享目录文件权限

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
用途 后台服务、进程身份 登录用户,多人共享权限
创建时机 安装软件自动生成 管理员手动创建
是否允许人登录 一般不用于登录 供人登录使用

原文出处:/show_1GW46DrJRocV.html