直接运行groups命令即可查看当前用户所属所有组名,空格分隔;但主组不保证排第一,需用id -gn确认主组名,新添加的组须重新登录才生效。

直接在终端输入 groups 并回车,就能立刻看到当前用户所属的所有组名,空格分隔,无需参数、不用 sudo、也不用指定用户名。
输出内容怎么看
例如输出:users docker www-data,说明你当前 shell 会话拥有这三个组的权限上下文。第一个组(users)通常是主组,但不能依赖顺序判断主组——因为 groups 不保证主组一定排第一。真要确认主组名,请用 id -gn;要确认主组数字 ID,请用 id -g。
为什么有时查不到刚加的组
比如你刚执行了 sudo usermod -aG docker $USER,马上运行 groups 却没显示 docker,这是正常现象。原因在于:组信息变更后,需新登录会话才能继承更新后的凭证。临时解决办法是运行 newgrp docker(会启动一个子 shell),或干脆重新登录、重启终端甚至登出桌面环境。
让输出更易读的小技巧
如果组太多、一行堆着难找,可以加个简单别名让它自动换行排序:
- 把这行加到 ~/.bashrc 或 ~/.zshrc 中:
alias mygroups='groups | tr " " "\n" | sort' - 运行 source ~/.bashrc 生效后,敲 mygroups 就能按字母顺序逐行列出所有组,方便快速定位是否包含某组(比如 docker 或 www-data)。
和 id 命令比有什么区别
groups 只输出组名,轻量快捷,适合日常快速确认;id 则给出完整身份视图:UID、主 GID、所有组的名称+数字 ID。排查权限问题(如 docker 报 permission denied)时,建议优先用 id -Gn(组名列表,含主组,比 groups 更可靠)或 id(全信息),避免只看名字却忽略 GID 是否真正生效。


















