Skip to content

文件的保护

考情分析

文件保护在 408 真题中偶有涉及,多以选择题形式考查访问控制方式的区别。属于 🔥 中低频考点。

多用户系统中,你的文件别人能不能读、能不能改?这就是文件保护要解决的问题——本质上是"谁能对什么文件做什么操作"的权限管理。

访问类型

访问类型说明
读(Read)读取文件内容
写(Write)修改文件内容
执行(Execute)将文件装入内存并执行
追加(Append)在文件末尾添加内容
删除(Delete)删除文件
列目录(List)读取文件的属性信息

访问控制方式

1. 存取控制矩阵

用一个二维矩阵表示所有用户对所有文件的访问权限:

文件1文件2文件3
用户ARWR-
用户BRRWXRW
用户C-RR

问题:矩阵规模 = 用户数 × 文件数,存储开销巨大,且矩阵通常是稀疏的。就像给全校每个学生和每间教室都列一张出入权限表——大部分格子都是"无权限",白白浪费空间。

2. 访问控制列表 ACL

**ACL(Access Control List)**以文件为中心,每个文件维护一个列表,记录哪些用户有哪些权限。

这相当于存取控制矩阵的按列分解

优点:只存储有权限的用户-权限对,节省空间

缺点:ACL 可能很长,检索开销大

3. 能力表

**能力表(Capability List)**以用户为中心,每个用户维护一个列表,记录它能访问哪些文件及权限。

这相当于存取控制矩阵的按行分解

4. 精简的访问控制(Unix 方案)

Unix/Linux 对 ACL 做了精简,将用户分为三类,每类分配 rwx 三种权限:

用户类别说明
文件所有者(owner)创建文件的用户
同组用户(group)与所有者属于同一用户组
其他用户(others)系统中的其他所有用户
权限表示:rwxr-xr--
         ─┬─ ─┬─ ─┬─
          │    │    └── others: 只读
          │    └─────── group: 读+执行
          └──────────── owner: 读+写+执行

对应八进制:754

这种方案只需要 9 个 bit 就能表示一个文件的全部权限。

三种方式的对比

方式视角存储优点缺点
存取控制矩阵全局用户×文件 矩阵直观空间浪费严重
ACL以文件为中心每个文件一个列表管理直观列表可能很长
能力表以用户为中心每个用户一个列表方便用户管理难以按文件撤销权限
Unix 精简方案以文件为中心9 bit极其紧凑粒度较粗

口令与加密

除了访问控制,还有两种辅助保护方式:

  • 口令保护:访问文件需要提供正确的口令。口令存放在 FCB 中。缺点是口令以明文存储不安全,且口令传输过程可能被截获
  • 加密保护:对文件内容进行加密,只有持有密钥的用户才能解密读取。安全性高但加解密有开销

考研高频考点

  • 🔥🔥 存取控制矩阵、ACL、能力表的区别与联系
  • 🔥🔥 Unix 的 rwx 权限表示与八进制转换
  • 🔥 口令保护与加密保护的优缺点
  • 🔥 ACL 是按列分解,能力表是按行分解

保护机制管的是"谁能访问",但文件本身的数据怎么组织?下一篇来看文件的逻辑结构——从用户视角看数据是怎么排列的。

真题练习

相关真题(2题)

2017Q30选择题2分

文件权限位:4类用户×5种权限=20位

2010Q31选择题2分

文件访问控制:存储在文件控制块(FCB/inode)中