第九十八章:用户、权限与访问控制
复习
- 内核用地址空间隔离内存,也用文件系统保存持久数据。
TL;DR
- 用户身份回答“谁在请求”,权限规则回答“他能做什么”。
- 访问检查通常在内核处理系统调用时完成。
正文
同一台机器可由多人和许多服务共同使用。文件、进程和设备往往带有所有者、所属组和权限等元数据。进程通过系统调用请求打开文件时,内核根据其身份与对象规则决定允许读取、写入还是拒绝。
权限不是一个孤立功能:它依赖用户态和内核态的边界,依赖进程记录“以谁的身份运行”,也依赖文件系统保存规则。隔离由此从“这块内存是谁的”延伸到“谁可对这个对象做什么”。
有时一台机器还要像许多台彼此隔离的机器那样提供环境。虚拟机和容器把边界再向外推了一层。
思考题
为什么文件权限检查应由内核而非应用自己执行?
小结
- 身份与授权让共享资源可按规则使用。
- 系统调用边界是实施访问控制的重要位置。
思考题答案(仅供参考)
应用可能被篡改或不可信;只有内核掌握受保护资源并能强制执行规则。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。