在 Linux 系统中,用户与组的关系是权限管理的核心基础,每个用户至少属于一个主组(Primary Group),同时可以加入多个辅助组(Supplementary Groups),这种设计既保证了用户的基本权限隔离,又实现了灵活的资源共享,本文将详细解析 Linux 用户所属组的类型、查看方法、管理命令及实际应用场景。

用户组的类型:主组与辅助组
主组(Primary Group)
Linux 用户在创建时,系统会自动为其分配一个与用户名同名的主组(除非通过 -g 参数指定其他组),主组是用户的“默认组”,当用户创建新文件或目录时,这些文件的所属组会自动继承用户的主组,用户 test 创建文件 example.txt,若未特殊设置,该文件的所属组即为 test 组,每个用户只能有一个主组,通常存储在 /etc/passwd 文件的第 4 个字段(GID 字段)中。
辅助组(Supplementary Groups)
辅助组是用户额外加入的组,用于扩展权限,一个用户可以属于多个辅助组,从而访问不同组的资源,将用户 alice 加入 sudo 组后,她即可获得管理员权限;加入 docker 组后,无需 sudo 即可运行 Docker 命令,辅助组信息存储在 /etc/group 文件中,每个组记录包含组名、组密码(通常为空)、GID 和组成员列表。
查看用户所属组的方法
使用 id 命令(推荐)
id 命令是查看用户和组信息的快捷方式,默认显示当前用户的 UID、主组 GID 及所有辅助组。
id alice
输出示例:

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),999(docker)
gid 为主组 GID,groups 列出所有辅助组,若查看其他用户,需加 -u(UID)、-g(主组 GID)或 -G(所有辅助组 GID)选项,如 id -G alice 仅显示辅助组 GID 列表。
查看 /etc/passwd 和 /etc/group 文件
/etc/passwd:每行记录一个用户,格式为用户名:密码:UID:GID:用户描述:家目录:Shell,第 4 字段即用户的主组 GID,可通过grep alice /etc/passwd查看主组信息。/etc/group:每行记录一个组,格式为组名:组密码:GID:成员列表。grep sudo /etc/group可能显示sudo:x:27:alice,bob,表示alice和bob是sudo组的成员。
使用 groups 命令
groups 命令简洁显示用户所属的所有组,groups alice 输出 alice : alice sudo docker,直观列出主组和辅助组。
管理用户组的常用命令
创建组:groupadd
sudo groupadd developers # 创建名为 developers 的新组
删除组:groupdel
sudo groupdel developers # 删除 developers 组(需确保组内无用户)
修改组:groupmod
sudo groupmod -n team developers # 将组名 developers 改为 team sudo groupmod -g 2000 developers # 修改 developers 组的 GID 为 2000
管理用户与组的关系
- 将用户加入辅助组:
sudo usermod -aG sudo alice(-a表示追加,避免覆盖现有辅助组) - 将用户移出辅助组:需编辑
/etc/group文件(手动删除用户名)或使用gpasswd命令(sudo gpasswd -d alice sudo)。 - 设置用户主组:
sudo usermod -g developers alice(将alice的主组改为developers)。
实际应用场景
权限控制
通过组实现文件权限的统一管理,将项目文件所属组设为 developers,并设置组权限为 rwx,所有 developers 组成员均可读写执行,而其他用户无权限,避免逐一设置用户权限。
系统服务管理
将用户加入 www-data 组(Web 服务器默认组),使其能直接操作网站目录而无需 sudo,同时避免权限过高。

安全隔离
不同部门用户分属不同组(如 finance、hr),通过目录的组权限控制敏感数据访问,确保只有部门组成员可访问对应目录。
注意事项
- 主组修改:修改用户主组会影响新创建文件的默认所属组,需谨慎操作。
- 辅助组生效:用户加入新辅助组后,需重新登录或执行
newgrp命令使权限生效(newgrp sudo)。 - 系统组:部分系统自带组(如
root、daemon)不建议随意修改,以免影响系统正常运行。
理解 Linux 用户与组的关系,是掌握系统权限管理的关键,通过合理设置主组和辅助组,既能保障系统安全,又能提升团队协作效率。



















