直接运行 groups 用户名 可查指定用户所属组,但需 root 权限(普通用户会失败),输出格式为“用户名 : 组名1 组名2”,空格分隔;输出为空表示仅属私有同名主组;新组需重新登录才生效,id 命令比 groups 更可靠,可同时显示 uid、gid 及所有组的数字与名称信息。

直接运行 groups 用户名 就能查指定用户所属的组,但要注意权限和时效性。
查其他用户必须有读取系统组文件的权限
普通用户执行 groups www-data 通常会失败,提示 groups: cannot find name for group ID 或无输出。这是因为 groups 需要读取 /etc/passwd 和 /etc/group,而这些文件默认仅对 root 或具备相应权限的用户可读。正确做法是加 sudo:
-
sudo groups alice→ 输出类似alice : alice docker www-data - 冒号前是用户名,后面是该用户当前会话中生效的所有组名(空格分隔)
输出为空说明只属于私有同名组
如果 sudo groups bob 输出只有 bob :(冒号后没内容),代表该用户仅属于自己的主组(即 id -g bob 对应的 GID 所在组),未被加入任何附加组。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
此时可进一步确认:id -gn bob 查主组名,id -Gn bob 查所有组名(含主组),结果应为单个组名。
查到的结果不等于权限已生效
刚用 usermod -aG docker alice 添加组后,立刻运行 sudo groups alice 可能仍不显示 docker。这不是命令出错,而是因为组变更需新登录会话才能载入内核凭证。
- 真实生效方式:让目标用户完全登出再登录,或在终端中执行
su - alice启动新登录 shell - 图形界面用户尤其容易忽略:重启终端不够,必须重新登录桌面会话
对比 id 命令更利于排查权限问题
groups 只给组名,而 id 能同时给出 UID、GID、所有组的数字 ID 和名称,对调试更可靠:
-
id -Gn alice输出组名列表(格式同groups alice,但绕过部分缓存,更准) -
id -G alice输出纯数字 GID 列表,可用于脚本判断(如id -G | grep -q '\') - 遇到
docker: permission denied类错误时,光看groups不够,得用id确认当前 shell 是否真拿到了对应 GID










