所有的Centos系统都有组的概念,通过组可以更加方便地管理用户。组的概念应用于各种行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Centos系统,同样可以创建用户,并用组的概念对其管理。
Centos组管理有如下特点:
每个组有一个组 ID;
组信息保存在/etc/group中;
每个用户至少拥有一个主组,同时还可以拥有31个附属组。
以下是 CentOS 7 中用户组管理命令 groupadd、groupmod、groupdel 的完整用法、示例及组内成员操作指南,结合系统管理实践整理而成:
一、组创建命令groupadd
功能:创建新用户组。
语法:sudo groupadd [选项] 组名
常用选项
- -g GID:指定组 ID(默认自动分配)
- -r:创建系统组(GID 范围 201–999)
- -o:允许非唯一 GID(需与 -g 联用)
- -p 密码:设置组密码(较少用)
groupadd deve # 创建普通组如图1所示
groupadd -g 1500 testgroup # 创建指定 GID 的组如图2所示
groupadd -r sysadmin # 创建系统组(用于服务或守护进程)如图3所示
二、组修改命令groupmod
功能:修改组属性(名称、GID)。
语法:sudo groupmod [选项] 组名
常用选项
- -g 新GID:修改组 ID
- -n 新组名:重命名组
- -o:允许重复 GID(需与 -g 联用)
groupmod -n newgroup testgroup # 修改组名(testgroup → newgroup)如图4所示
groupmod -g 2000 newgroup # 修改 GID(原组名 newgroup 的 GID 改为 2000)如图5所示
groupmod -og 1500 newgroup # 允许重复 GID(与已有组 GID 冲突时)强制 GID 为 1500如图6所示,此命令会覆盖之前的组,相当于修改组名
三、组删除命令groupdel
功能:删除用户组。
语法:sudo groupdel [选项] 组名
强制选项:-f(组内有成员时强制删除)
groupdel db # 删除空组如图7所示
groupdel -f developers # 强制删除非空组(需先处理组成员)如图8所示
注意:
- 若组是某用户的主组(Primary Group),需先修改用户主组或删除用户
usermod -g new_primary_group 用户名 # 将用户主组改为其他组如图9所示
groupdel bbo # 再删除原组
四、组内成员管理
- 添加用户到组
方法 1:usermod(需 -a 避免移除原有附加组)如图10所示
usermod -aG developers bbo # -aG:追加到附加组方法 2:gpasswd如图11所示
gpasswd -a bbo developers- 从组移除用户如图12所示
gpasswd -d bobo developers # 从组中删除用户- 批量设置组成员如图13所示
# 覆盖原有成员(用逗号分隔用户)
sudo gpasswd -M "bobo,aphone,dev1" developers查看组信息
查看所有组
cat /etc/group 或 getent group 组名:GID:成员列表如图14所示
查看特定组成员
getent group developers如图15所示
检查用户所属组
groups bbo 列出用户的主组及附加组如图16所示
验证用户是否在组内
id bobo 显示 GID 和组列表如图17所示
关键注意事项
- 权限要求:所有组操作需 root 或 sudo 权限
- 删除限制:
- 无法删除作为用户主组的组(需先修改主组)
- 非空组需用 -f 强制删除(或先移出成员)
- GID 冲突:默认 GID 唯一,-o 可覆盖此限制
- 文件权限:修改组 GID 后,原属该组的文件需手动更新归属权(chgrp)
附:组管理命令选项速查表
命令 | 常用选项 | 作用 |
groupadd | -g、-r、-o | 创建组并指定属性 |
groupmod | -g、-n、-o | 修改组 ID 或名称 |
groupdel | -f | 强制删除非空组 |
gpasswd | -a、-d、-M | 管理组成员和密码 |
