用 id username 可直接查用户 uid、gid 及所属组;id -u、-g、-g 分别提取纯数字 uid、主 gid、全部 gid;用户不存在时报错且返回状态码 1;root 用户的 id -u 和 id -g 恒为 0。

直接用 id 命令加用户名就能查,不用翻配置文件或写脚本。
查指定用户的 UID 和 GID(基础用法)
运行 id username 即可一次性拿到 UID、主 GID 和所有所属组信息。
- 输出格式固定:
uid=1001(john) gid=1001(john) groups=1001(john),27(sudo),100(users) -
uid=后是数字 UID,gid=后是主组 GID,groups=后是全部组(含主组)的 GID 列表 - 如果用户不存在,命令会报错:
id: 'nonexistent': no such user,状态码为 1,不是静默失败
只提取纯数字 UID 或 GID(适合脚本)
别用 id username | cut -d= -f2 | cut -d\( -f1 这类脆弱解析——字段顺序可能变,括号里也可能含空格。
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 要 UID 数字:用
id -u username,例如输出1001 - 要主 GID 数字:用
id -g username,例如输出1001 - 要所有组的 GID 数字(空格分隔):用
id -G username,例如输出1001 27 100 -
id -u和id -g对 root 用户返回0,这是唯一可靠的 root 判断依据
查不到用户?先确认用户名拼写和存在性
id 不会容忍拼写错误或大小写偏差,也不会 fallback 到模糊匹配。
- 检查拼写:
getent passwd username能查到才说明用户真实存在 - 系统用户(如
www-data、mysql)通常 UID /etc/passwd 里就有对应记录,id就能查 - 某些容器或网络用户(如 LDAP)可能不显示在本地
/etc/passwd,但只要getent passwd能返回,id一般也能查到 - 注意:
id nobody通常能成功,但id不带参数时默认查当前用户,不是nobody
想看组名而不是 GID?必须组合 -n 参数
-n 单独无效,它必须和 -g 或 -G 一起用,否则报错。
- 查主组名:
id -gn username→ 输出john - 查所有组名:
id -nG username→ 输出john sudo users - 组名解析依赖
/etc/group;若该文件损坏或 NFS 挂载异常,-n可能退化回输出数字 -
id -un username等价于getent passwd username | cut -d: -f1,但更简洁
UID/GID 数字本身没意义,关键要看它对应哪个用户或组,以及该用户/组在文件权限(ls -l)、sudoers 或容器命名空间里的实际角色。别只盯着数字,得结合上下文一起看。










