用 groups 用户名 和 id 用户名 互补查询用户所属组:groups 输出简洁组名列表,id 显示 uid、gid 及全部组的数字 id 与名称;注意主组未必在 groups 首位,且新添加组需重新登录生效。

直接用 groups 用户名 或 id 用户名 就能查到指定用户属于哪些组,两者互补,推荐一起用。
用 groups 命令快速看组名
它只输出组名,简洁直观,适合快速确认:
- 运行
groups alice,会显示类似alice : users sudo docker - 冒号前是用户名,后面空格分隔的就是该用户所属的所有组(主组 + 附加组)
- 不加用户名时(
groups)默认查当前用户
用 id 命令查看完整身份信息
它带 UID、GID 和所有组的数字 ID 与名称,更全面,排查权限问题时更可靠:
- 运行
id alice,输出如:uid=1001(alice) gid=1001(users) groups=1001(users),27(sudo),998(docker) -
gid=是主组,groups=列出全部(含主组和所有附加组) - 注意:别只看
id -gn alice,它只返回主组名,会漏掉附加组
补充方法:直接查 /etc/group 文件
适用于脚本处理或想确认某组里有哪些用户:
- 运行
grep "^docker:" /etc/group,可看到docker:x:998:alice,bob - 第四字段逗号分隔的就是该组成员,但要注意:主组不会显式列在 /etc/group 的成员字段里(除非用户被显式加入过)
- 所以单靠这个查“用户属哪些组”不如
groups或id直接
常见误区提醒
实际运维中容易踩坑,尤其涉及权限失效时:
- 只查主组(比如用
id -gn)就认为用户有某组权限——错,附加组同样生效 - 误以为
groups输出的首个组就是主组——不一定,顺序无特定含义 - 查不到新添加的组?可能刚执行
usermod -aG后没重新登录,组信息需新会话才加载











