gpasswd 是 linux 中管理用户组的核心命令,支持增删成员(-a/-d)、指定管理员(-a)、批量重置成员(-m)、设置/清除组密码等操作,操作安全且精准作用于 /etc/group 和 /etc/gshadow。

gpasswd 是 Linux 中专用于管理用户组的核心命令,主要操作 /etc/group 和 /etc/gshadow 文件,支持添加/删除成员、指定管理员、设置或清除组密码等。它比 usermod -G 更安全,因为 -a 操作是追加式,不会清空用户已有的其他附加组。
添加或删除组成员
向组中加入用户时,使用 -a 选项;移除用户用 -d。这两个操作都保留用户在其他组中的身份。
- sudo gpasswd -a alice developers:把 alice 加入 developers 组
- sudo gpasswd -d bob developers:把 bob 从 developers 组移出
- 注意:用户需已存在,组也必须提前创建(如用 groupadd developers)
设置组管理员
组管理员可自行管理该组的成员和密码,无需 root 权限执行 gpasswd(仅限本组)。用 -A 指定一个或多个管理员,用英文逗号分隔。
- sudo gpasswd -A carol,dan testers:让 carol 和 dan 成为 testers 组的管理员
- 之后 carol 登录后执行 gpasswd -a eve testers 即可直接添加用户
- 管理员不能给自己删自己,但可修改组密码或增删他人
批量重置组成员列表
使用 -M 可一次性定义整个组的成员名单,这会完全覆盖当前所有成员,适合初始化或严格管控场景。
- sudo gpasswd -M frank,grace,helen admins:admins 组只剩这三人
- 若想清空组成员,可写成 sudo gpasswd -M "" admins
- 与 -a/-d 不同,-M 不做增量操作,务必确认完整名单再执行
组密码与临时切换(newgrp)
给组设密码后,非成员用户也能通过 newgrp 临时切换到该组,从而影响新建文件的所属组。现代系统中较少启用,但仍有特定协作场景适用。
- sudo gpasswd finance:交互式设置 finance 组密码
- sudo gpasswd -r finance:删除该组密码
- sudo gpasswd -R finance:禁用密码登录,仅允许已有成员用 newgrp 切换
- 普通用户运行 newgrp finance 后,后续创建的文件默认属 finance 组










