管理 /etc/group 应使用 gpasswd 和 groupmod 命令,避免直接编辑;gpasswd 用于增删(-a/-d)或覆盖(-M)组成员,groupmod 修改组名(-n)或 GID(-g),二者均同步更新 /etc/group 与 /etc/gshadow;日常用 getent、groups 和 grpck 查验。

管理 /etc/group 数据库不能直接编辑文件,而应使用专用命令工具——核心是 gpasswd 和 groupmod,它们会同步更新 /etc/group 与配套的 /etc/gshadow,确保结构一致、权限安全。
添加或删除组成员
用 gpasswd -a 或 -d 修改成员列表,操作自动写入 /etc/group 的第四字段(逗号分隔的用户名):
-
sudo gpasswd -a alice dev:把用户 alice 加入 dev 组 -
sudo gpasswd -d bob dev:从 dev 组中移除 bob - 不推荐手动改
/etc/group,易导致格式错误或与/etc/gshadow不同步
批量设置或覆盖组成员
用 gpasswd -M 一次性指定全部成员(会清空原有列表):
-
sudo gpasswd -M alice,bob,carol dev:dev 组只保留这三人 - 注意:-M 是覆盖式操作,不是追加;若需追加,应先查现有成员再拼接后重设
修改组基础属性
用 groupmod 更改组名、GID 等元信息,它也会更新 /etc/group 对应行:
-
sudo groupmod -n developers dev:把组名 dev 改为 developers -
sudo groupmod -g 2005 developers:把 GID 设为 2005 - 修改前需确认该 GID 未被占用,且无用户以该组为主组(否则需配合
usermod -g调整)
查看与验证组数据
日常检查用标准命令,避免直读敏感文件:
-
getent group dev:安全读取组信息(兼容 NSS 配置) -
groups alice:查用户当前所属的所有组 -
sudo grpck:校验/etc/group和/etc/gshadow格式与一致性


















