「Linux用户账号管理」组群管理
群组文件
/etc/group文件:存储 Linux 系统中所有用户组(group)的信息。
-
文件结构(每行4个字段)
格式:组名:组密码占位符:组ID(GID):组成员列表
-
字段详解
-
组名称 (group_name)
- 字母数字组合(不能含冒号、大写字母建议避免)
- 长度通常 ≤ 32 字符
-
组密码 (password)
- 总是
x
(表示实际密码存于/etc/gshadow
) - 若显示为
!
表示禁用组密码(标准设置)
- 总是
-
组ID (GID)
- 0-999 → 系统保留组(如
root
组GID=0) - ≥1000 → 普通用户组
- 0-999 → 系统保留组(如
-
成员列表 (user_list)
- 属于该组的附加用户成员
- 用英文逗号分隔的用户名(不包含主组用户)
-
-
示例解析
root:x:0: sudo:x:27:alice,bob docker:x:998:carol developers:x:1001:dev1,dev2,dev3
组名 含义 成员说明 root
管理员组 (GID=0) 无附加成员 sudo
sudo特权组 (GID=27) alice和bob有sudo权限 docker
Docker容器管理组 (GID=998) carol可操作Docker developers
开发团队组 (GID=1001) 包含3名开发人员
/etc/gshadow:存储群组密码和管理员信息(高级场景使用)。
常用命令
groupadd
:创建新群组
核心功能:在 Linux 系统中创建新用户组,自动分配 GID 或指定特定 GID。
groupadd
命令语法
groupadd [选项] 组名
常用选项
选项 | 作用 | 示例 |
---|---|---|
-g GID | 指定自定义 GID | sudo groupadd -g 1500 dev |
-f | 强制创建(组已存在时不报错) | sudo groupadd -f backup |
-r | 创建系统组(GID < 1000) | sudo groupadd -r appadmin |
-o | 允许使用重复 GID(不推荐) | sudo groupadd -o -g 1001 test |
-K KEY=VAL | 覆盖 /etc/login.defs 中的默认配置 | sudo groupadd -K GID_MIN=2000 dev |
使用示例
-
创建普通用户组
groupadd developers # 创建名为 developers 的组(自动分配 GID)
-
创建指定 GID 的组
groupadd -g 2024 docker_users # 创建 GID=2024 的组
-
创建系统组
groupadd -r mysql_admin # 创建系统组(GID 范围 0-999)
-
强制创建(忽略已存在报错)
groupadd -f webadmin # 组存在时静默跳过
关键注意事项
-
权限要求
groupadd ... # 必须使用 root 或 sudo 权限
-
GID 分配规则
- 默认从
/etc/login.defs
中的GID_MIN
(通常 1000)开始分配 - 系统组:GID 范围 0-999
- 普通组:GID ≥1000
- 默认从
-
组名规范
- 长度 ≤ 32 字符
- 禁止特殊字符(仅允许
_
和-
) - 大小写敏感(
Dev
≠dev
)
-
冲突处理
- 组名或 GID 重复时报错 → 用
-f
忽略或-g
修改 GID - 系统组避免使用保留 GID(如
0
、1
、2
)
- 组名或 GID 重复时报错 → 用