在Linux系统中,每个用户都至少属于一个用户组,修改用户组是日常运维和权限管理中的常见操作。无论是为了调整文件访问权限,还是将用户加入某个开发组,我们都需要用到相关的命令行工具。

如何查看用户当前所属的组
在修改之前,可以先确认用户现在属于哪些组。使用groups命令或直接查看/etc/group文件都可以。
# 查看指定用户所属的全部组 groups username # 查看当前登录用户所属的组 groups # 从group文件中过滤某用户 grep username /etc/group
使用usermod修改用户组
usermod是最常用的修改用户属性的命令,它可以更改用户的主组或附加组。
修改用户的主组
主组是用户创建文件时默认归属的组,使用-g参数指定新的主组名或GID。
# 将用户username的主组改为develop usermod -g develop username
添加附加组而不脱离原组
如果想让用户同时属于多个组,应使用-aG参数,其中-a表示追加,-G后面跟附加组列表。
# 将username追加到docker和www组 usermod -aG docker,www username
注意:如果只写-G而不加-a,会覆盖用户原有的附加组,请务必小心。
从附加组中移除用户
可以先用id命令查看组,再重新设置保留的组来实现移除。
# 查看用户uid和组信息 id username # 重新设定保留的附加组,排除要移除的组 usermod -G retain_group1,retain_group2 username
使用gpasswd管理组成员
gpasswd命令也可以用来将用户加入或移出某个组,适合组管理员操作。
# 将用户加入组 gpasswd -a username target_group # 将用户从组移除 gpasswd -d username target_group
修改后生效与验证
如果用户当前已登录,需要重新登录或执行newgrp切换才能应用新组。修改完成后,建议再次用groups或id确认结果。
| 命令 | 作用 |
|---|---|
| usermod -g | 修改用户主组 |
| usermod -aG | 追加附加组 |
| gpasswd -a | 加入组 |
| gpasswd -d | 移除组 |
修改用户组会影响文件权限,操作前最好备份关键数据并确认组名正确。