在 Linux 内核中,(实际用户 ID)、(文件系统用户 ID)和 (创建者用户 ID)并非存储在同一个位置,也不遵循同一套生命周期管理机制。它们分属进程凭证(credentials) 与 内核 IPC 对象元数据 两大独立子系统,其存储位置、数据结构、访问方式和持久性均截然不同。
以下内容严格依据 Linux 内核源码(v6.12,2026 主流发行版内核)、、、、 等核心文件,并结合 的实际实现,为你逐层揭示三者的真实存储位置、内存布局与内核视角下的存在形式——不抽象、不比喻、只代码与结构体。
位于
这是 Linux 进程所有身份凭证的唯一容器,由 指向(RCU 保护,写时拷贝)。
? 关键事实:
- 是内核对 UID 的封装类型(含 user namespace 映射支持),底层为 (32 位整数);
- , , , 四个字段并列存在于同一 实例中,内存连续;
- 每个进程()在 时通过 完整复制该结构(COW 优化);
- 修改任一字段(如 )会触发 ,原子替换整个 结构指针。
在运行中的进程 可直接观察:
✅ 所以: 就是 ,和 同级、同结构、同生命周期。
位于
这是所有 System V IPC 对象(msg/sem/shm)的公共元数据头,嵌入在各自对象结构体中。
? 关键事实:
- 字段不是进程属性,而是 IPC 对象的固有元数据;
- 它在 IPC 对象创建时(, , )被一次性初始化为调用进程当时的 ,之后永远不可修改;
- 内核通过 从 获取完整对象(如 );
- 所有 IPC 对象(msg/sem/shm)共享同一套 布局,因此 语义统一。
使用 查看:
✅ 所以: 就是 ,仅存在于 IPC 对象内存块头部,与任何进程无关。
| 属性 | / | |
|---|---|---|
| 所属子系统 | 进程凭证管理(, ) | IPC 子系统(, 等) |
| 存储结构体 | (进程私有) | (IPC 对象私有) |
| 内存位置 | 进程内核栈/堆上的 分配块() | IPC 对象分配块的起始处(如 结构体内嵌) |
| 生命周期 | 与进程同生共死( 复制, 可能重置) | 与 IPC 对象同生共死( 分配, 释放) |
| 可写性 | 可由 修改(需 ); 有严格权限控制 | ❌ 完全只读:内核代码中无任何函数可修改 ; 只能改 ,不能碰 |
| 命名空间感知 | ✅ 是: 在 user namespace 中自动映射() | ✅ 是: 存储的是创建时已映射到 init_user_ns 的 kuid,但 输出时会按当前 namespace 重新映射显示 |
| 是否可见于 | ✅ 是: 的 行(第4列为 ) | ✅ 是: 输出中的 字段 |
? 特别强调 的只读性(来自内核源码实证):
在 中搜索 ,你只会看到:
- 初始化: (在 中)
- 读取:(权限检查)
- 找不到任何 的赋值语句 —— 这就是设计: 是“出生证明”,不可篡改。
| 设计目标 | 的解法 | 的解法 | 技术本质 |
|---|---|---|---|
| 隔离性 | 与 解耦 → 文件操作权限 ≠ 系统调用权限 | 与 分离 → IPC 所有权 ≠ IPC 当前所有者 | 关注点分离(Separation of Concerns) |
| 安全性 | 允许 NFS 服务器以 运行,却以客户端 UID 访问文件,避免提权滥用 | 锁定创建者身份,防止恶意进程 后冒充创建者获取 权限 | 最小权限 + 不可抵赖(Non-repudiation) |
| 可审计性 | 变更记录在 audit log()中 | 是 IPC 对象的静态指纹, 输出即权威证据 | 行为可追溯 + 状态可验证 |
| 命名空间兼容 | 封装确保 在容器内可能是 ,在宿主机是 | 存储的是全局 , 显示时按当前 ns 映射 → 用户看到的是“自己 namespace 下的数字” | 抽象统一 + 视图灵活 |
| 目标 | 方法 | 命令 / 代码片段 |
|---|---|---|
| 查看进程当前 | 读 | → 第4列 |
| 查看某 IPC 对象 | 工具 | → 行 |
| 内核模块中获取当前进程 | (定义于 ) | |
| 内核模块中获取 IPC 对象 | ||
| 验证 不可修改 | 源码搜索 | → 无结果 |
和 是每个进程私有的、可动态修改的身份字段,存储在进程的 内存块中;而 是每个 System V IPC 对象(消息队列/信号量/共享内存)的只读出生证明,硬编码在该对象的 头部,自创建起便永恒不变——它们分属两个完全独立的内核子系统,共享同一个英文缩写(CUID),却毫无技术继承关系。
声明:
1.本站主要是为了记录工作学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
------------------------------------------------------------------------------------------------
出处:网际迅联
网址1:https://www.wjxlkj.com
联系方式:
手机号码:13910758317
微信:13910758317
客服QQ:58053012
或下图二维码微信扫码或长按识别添加微信