Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

第九十八章:用户、权限与访问控制

复习

  • 内核用地址空间隔离内存,也用文件系统保存持久数据。

TL;DR

  • 用户身份回答“谁在请求”,权限规则回答“他能做什么”。
  • 访问检查通常在内核处理系统调用时完成。

正文

  同一台机器可由多人和许多服务共同使用。文件、进程和设备往往带有所有者、所属组和权限等元数据。进程通过系统调用请求打开文件时,内核根据其身份与对象规则决定允许读取、写入还是拒绝。

  权限不是一个孤立功能:它依赖用户态和内核态的边界,依赖进程记录“以谁的身份运行”,也依赖文件系统保存规则。隔离由此从“这块内存是谁的”延伸到“谁可对这个对象做什么”。

  有时一台机器还要像许多台彼此隔离的机器那样提供环境。虚拟机和容器把边界再向外推了一层。

思考题

为什么文件权限检查应由内核而非应用自己执行?

小结

  • 身份与授权让共享资源可按规则使用。
  • 系统调用边界是实施访问控制的重要位置。

思考题答案(仅供参考)

  应用可能被篡改或不可信;只有内核掌握受保护资源并能强制执行规则。

协议

本文采用 CC BY-NC-SA 4.0 协议发布。