Linux用户id是Linux操作系统中用于唯一标识用户和用户组的数值型标识,是系统管理用户身份、分配文件权限、控制资源访问的核心依据,和我们在系统中看到的用户名、组名是不同的概念。

Linux用户id的核心分类
Linux的用户id主要分为两大类,分别是用户ID(UID)和组ID(GID),二者都是非负整数,系统通过数值来识别身份,而非我们日常使用的字符串名称。
1. 用户ID(UID)
UID是User Identifier的缩写,每个Linux用户都对应一个唯一的UID,系统内核就是通过UID来判断当前操作的用户身份。UID的取值范围有固定的划分规则:
- 0:超级用户root的专属UID,拥有系统的最高权限,可以执行所有操作。
- 1-999:系统用户UID,这类用户是系统运行依赖的服务账户,通常没有登录系统的权限,仅用于运行特定服务进程。
- 1000及以上:普通用户UID,是我们手动创建的正常登录用户对应的UID,权限受普通用户规则限制。
2. 组ID(GID)
GID是Group Identifier的缩写,每个用户组都对应一个唯一的GID,用户组的作用是将多个用户归为同一类,方便批量分配文件或资源的访问权限。每个用户至少有1个主组,还可以加入多个附加组,对应的GID也会分为主组GID和附加组GID。
如何查看Linux用户id
我们可以通过系统自带的命令快速查看当前用户或指定用户的id信息,常用的命令有以下两个:
使用id命令查看
id命令可以输出指定用户的所有id相关信息,如果不指定用户名,默认输出当前登录用户的信息。示例代码如下:
# 查看当前用户的id信息 id # 查看指定用户test的id信息 id test
执行上述命令后,输出内容会包含uid、gid、groups三个部分,分别对应UID、主组GID、所有所属组的GID信息。
查看用户配置文件
Linux系统的用户信息存储在/etc/passwd文件中,组信息存储在/etc/group文件中,我们也可以直接查看这两个文件获取id信息。示例代码如下:
# 查看passwd文件中root用户的信息,第三列就是UID,第四列是主组GID grep root /etc/passwd # 查看group文件中root组的信息,第三列就是GID grep root /etc/group
用户id的实际应用场景
用户id在Linux系统管理中有非常多的实际应用,常见的场景包括:
- 权限判断:系统检查用户对文件的操作权限时,会先获取用户的UID和所属组GID,再和文件的权限位、所属UID、所属GID对比,判断是否有操作权限。
- 进程归属:每个运行的进程都会关联一个UID,代表启动该进程的用户身份,进程的操作权限也受这个UID的限制。
- 用户管理:创建用户、修改用户所属组、删除用户等操作时,系统本质都是在维护UID、GID和用户名、组名的对应关系。
常见问题说明
很多用户会有疑问,为什么系统要用数值id而不是用户名来识别用户?主要原因是数值型的id比字符串的用户名处理效率更高,而且用户名可以修改,但UID一旦创建就不会变更,能保证身份识别的稳定性。另外如果两个用户的UID相同,系统会认为他们是同一个用户,即使用户名不同,也会拥有相同的权限,这一点在用户管理时需要特别注意。