最常用方法是使用 groups 或 id 命令:groups john 列出用户所属所有组,id -nG john 仅显示组名,/etc/group 文件可手动验证但不推荐。

在 Linux 中,查询指定用户所属的用户组,最常用且直接的方法是使用 groups 命令或 id 命令。
使用 groups 命令查看用户所属组
该命令简洁明了,专用于列出用户所属的所有组(包括主组和附加组):
- 查看当前登录用户的组:
groups - 查看指定用户(如
john)的组:groups john
输出示例:john : john sudo docker www-data,其中第一个是主组(john),后面是附加组。
使用 id 命令获取更详细信息
id 不仅显示组列表,还附带 UID、GID 和组 ID 编号,适合排查权限问题:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查看当前用户:
id - 查看指定用户:
id john - 只显示组名(不带 ID):
id -nG john - 只显示主组名:
id -nG -r john
从系统文件中手动确认(备用方式)
用户与组的映射关系保存在 /etc/group 文件中。可配合 grep 查找用户出现在哪些组的成员字段里:
-
grep ':.*:.*:john$' /etc/group—— 查找以john为唯一成员的行(不推荐,易漏) - 更可靠的方式:
grep 'john' /etc/group | cut -d: -f1—— 列出所有包含john的组名(注意:需确保用户名不会误匹配组名或其他字段)
⚠️ 注意:这种方式依赖文本匹配,不如 groups 或 id 准确,仅作验证参考。
补充说明
用户主组由 /etc/passwd 中第四字段(GID)决定,附加组则记录在 /etc/group 中。新添加的组成员关系需用户重新登录或使用 newgrp 才能在当前会话生效。

















