linux里uid是什么意思
linux里uid是什么意思详细介绍
在 Linux 系统中,**UID(User IDentifier,用户标识符)** 是用于唯一标识用户的整数编号。每个用户(包括系统用户和普通用户)在创建时都会被分配一个唯一的 UID,它是系统内部识别用户的核心标识,而非用户名(用户名只是便于人类识别的别名)。以下是关于 UID 的详细说明:
1.
UID 的基本概念
- 唯一性:每个用户的 UID 在系统中是唯一的(除非手动修改,否则不会重复)。
- 存储位置:UID 及其对应的用户名、用户组等信息存储在系统文件
/etc/passwd中(每行记录一个用户,格式为:用户名:密码:UID:GID:注释:主目录:登录shell)。
2.
常见 UID 的默认范围
- 超级用户(root):
UID 固定为 0,拥有系统最高权限,可执行所有操作(如修改系统文件、管理其他用户等)。 - 系统用户(伪用户):
UID 范围通常为 1~999(不同 Linux 发行版可能略有差异,例如 Debian/Ubuntu 系统中系统用户 UID 默认为 100 以下)。
这类用户由系统自动创建,用于运行特定服务(如www-data、ftp、nobody等),通常不允许直接登录系统。 - 普通用户:
UID 范围默认从 1000 或 500 开始(取决于发行版,例如 CentOS/RHEL 从 1000 开始,旧版 Ubuntu 从 1000 开始,更早版本可能从 100 开始)。
普通用户由管理员手动创建,用于日常使用,权限受系统限制。
3.
UID 的核心作用
- 文件 / 目录权限标识:
当查看文件属性(如通过ls -l)时,文件的所有者显示为用户名,但系统底层实际通过 UID 来判断权限。例如,文件所有者的 UID 若为 1000,则表示该文件属于 UID 为 1000 的用户(无论用户名是否更改,UID 不变)。 - 进程归属:
运行中的进程会记录启动它的用户的 UID,用于权限检查(如普通用户无法终止其他用户的进程,除非通过sudo获得权限)。 - 用户认证:
系统在验证用户身份时,最终会将输入的用户名映射到对应的 UID,再进行权限匹配。
4.
UID 与用户名的关系
- 用户名是 UID 的 “别名”,方便用户记忆和使用;
- UID 是系统内部使用的唯一标识,即使用户名被修改,只要 UID 不变,该用户的文件归属、权限等不会改变。
例如:若将用户alice(UID 1000)重命名为bob,其所有文件的所有者仍为 UID 1000(显示为bob,因用户名已更新)。
5.
特殊注意事项
- UID 冲突:手动创建用户时若指定已有 UID,会导致权限混乱(因系统认为 UID 相同即为同一用户)。
- 删除用户时:若未删除用户文件,残留文件的 UID 可能成为 “孤儿 UID”(用户名被删除,但 UID 仍存在于文件中,通常显示为 UID 数值而非用户名)。
总结
UID 是 Linux 系统底层识别用户的 “数字身份证”,用户名是其 “姓名”。理解 UID 有助于深入掌握用户权限管理、文件归属、进程控制等核心功能。