UID(用户标识符)和 GID(组标识符)是 Linux/Unix 系统中用于管理用户和组权限的核心机制,它们的区别主要体现在作用对象和用途上:
目录
1. 定义与作用对象
2. 主要用途
3. 系统保留范围
4. 用户与组的关联
5. 实际应用示例
文件权限
命令操作
6. 总结
1. 定义与作用对象
-
UID(User IDentifier)
唯一标识系统中的用户,每个用户对应一个数字 ID。
例如:root
用户的 UID 是0
,普通用户(如alice
)的 UID 通常从1000
开始。 -
GID(Group IDentifier)
唯一标识系统中的用户组,每个组对应一个数字 ID。
例如:root
组的 GID 是0
,普通组(如developers
)的 GID 通常从1000
开始。
2. 主要用途
-
UID
-
决定用户对系统资源的访问权限(如文件、进程)。
-
系统通过 UID 判断进程的所有者(例如:
ps -aux
显示进程归属用户)。
-
-
GID
-
管理一组用户的共享权限,简化权限分配。
-
文件的所属组决定了组成员对该文件的权限(如读/写/执行)。
-
3. 系统保留范围
-
UID
-
0
:超级用户(root)的 UID。 -
1–999
(或1–499
,依发行版而定):系统服务/守护进程的保留 UID。 -
1000+
:普通用户的 UID。
-
-
GID
-
0
:root 组的 GID。 -
1–999
(或1–499
):系统保留组。 -
1000+
:普通用户组的 GID。
-
4. 用户与组的关联
-
每个用户必须属于至少一个组(主组,即
primary group
),对应一个 GID(在/etc/passwd
中定义)。 -
用户可加入多个附加组(在
/etc/group
中定义),继承这些组的权限。
5. 实际应用示例
文件权限
-rw-r--r-- 1 alice developers 2048 Jan 1 10:00 file.txt
-
UID 对应:用户
alice
(假设 UID=1001)是文件的所有者,拥有读写权限。 -
GID 对应:组
developers
(GID=1002)的成员拥有读权限。
命令操作
-
查看用户的 UID/GID:
id alice # 输出 uid=1001(alice) gid=1002(developers) groups=1002(developers),1003(admins)
-
修改文件所有者(UID):
sudo chown alice file.txt
-
修改文件所属组(GID):
sudo chgrp developers file.txt
6. 总结
特性 | UID | GID |
---|---|---|
作用对象 | 用户 | 用户组 |
权限核心 | 用户身份验证 | 组内共享权限 |
系统保留值 | 0 (root)和 1–999 | 0 (root组)和 1–999 |
典型用途 | 控制用户对资源的独占访问权 | 管理多个用户的协作访问权 |
通过 UID 和 GID,系统实现了灵活的多用户权限管理机制。