如何查看linux的uid
- Linux
- 2025-07-10
- 3398
 Linux中,查看UID(用户标识符)的常用方法包括:使用
 
 
id命令,默认显示当前用户的UID、GID及所属组信息;或使用
 id -u仅查看UID数字
Linux系统中,用户标识符(UID)是每个用户的唯一数字标识,用于系统权限管理和资源访问控制,查看UID的方法多样,以下是详细的操作指南和相关工具解析:
使用id命令查看UID
 
id命令是Linux中最常用的查看用户信息的工具,可显示当前用户的UID、GID(组ID)及所属组列表,以下是具体用法:
| 命令 | 作用 | 示例输出 | 
|---|---|---|
| id | 显示当前用户的UID、GID及所有组的ID和名称 | uid=1000(user) gid=1000(user) groups=1000(user),4(adm),27(sudo) | 
| id -u | 仅显示当前用户的UID(数字形式) | 1000 | 
| id -g | 仅显示主组的GID(数字形式) | 1000 | 
| id -G | 显示所有附加组的GID列表 | 4 27 | 
| id -n | 以用户名代替数字显示UID和GID | uid=user(user) gid=user(user) | 
| id -rn | 显示真实用户ID(非有效ID)的用户名形式 | user | 
示例:
$ id -u # 输出当前用户的UID 1000 $ id -un # 输出带用户名的UID user(user)
查看其他用户的UID
若需查询指定用户的UID,可在id命令后添加用户名:
id [用户名]
示例:
$ id www-data uid=33(www-data) gid=33(www-data) groups=33(www-data)
通过/etc/passwd文件直接查看
 
/etc/passwd文件存储了系统所有用户的基本信息,可通过以下命令提取UID:
grep ^[用户名]: /etc/passwd | cut -d: -f3
示例:

$ grep ^user: /etc/passwd | cut -d: -f3 1000
使用getent命令(更推荐)
 
getent passwd相比直接读取/etc/passwd,能兼容LDAP等分布式用户数据库:
getent passwd [用户名]
示例:
$ getent passwd user user:x:1000:1000:User Name:/home/user:/bin/bash
其中第3字段(1000)即为UID。
脚本自动化获取UID
在需要批量处理或集成到脚本时,可结合以下命令:
# 获取当前用户UID并赋值给变量 uid=$(id -u) echo "Current UID is $uid"
特殊场景:查看进程的实际UID
若需查看运行中的进程的真实UID(如被提权后的进程),可使用ps或stat命令:

ps -o uid= -p [进程PID]
示例:
$ ps -o uid= -p 1234 UID=0
常见问题与注意事项
-  UID与用户名的区别 
 UID是系统内部识别用户的数字标识,而用户名是便于人类阅读的别名。user的UID可能是1000,但在权限配置中,系统实际使用的是UID。
-  普通用户与系统用户的UID范围 - 系统用户(如root、daemon)的UID通常为0-999。
- 普通用户的UID从1000开始递增(可配置文件/etc/login.defs中的USER_MAX)。
 
- 系统用户(如
-  权限问题 
 普通用户只能查看自己的UID;若需查看其他用户信息,需具备相应权限(如使用sudo)。
FAQs
Q1:如何查看当前用户的所有组ID?
A1:使用命令id -G,

$ id -G 1000 4 27
这表示当前用户属于GID为1000(主组)、4(admin组)、27(sudo组)的组。
Q2:修改用户UID后如何验证是否生效?
A2:修改UID后(如通过usermod -u new_uid username),可执行以下命令验证:
$ getent passwd username username:x:new_uid:1000:Username:/home/username:/bin/bash $ id username uid=new_uid(username) gid=1000(group) groups=1000(group),4(adm),27(sudo)
确保文件中的UID字段和id命令
 
  
			