为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即解决对文件的读、写、执行的许可问题。为此,必须在文件系统中建立相应的文件保护机制。

文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。

1. 口令保护

为文件设置一个 “口令” (如: abc112233), 用户请求访问该文件时必须提供 “口令”

口令一般存放在文件对应的 FCB 或索引结点中。用户访问文件前需要先输入 “口令”,操作系统会将用户提供的口令与 FCB 中存储的口令进行对比,如果正确,则允许该用户访问文件

  1. 优点: 保存口令的空间开销不多,验证口令的时间开销也很小
  2. 缺点: 正确的 “口令” 存放在系统内部,不够安全

2. 加密保护

使用某个 密码 对文件进行加密,在访问文件时需要提供正确的 密码 才能对文件进行正确的解密

举例简单的加密算法: 异或加密,密码 “01001”

文件解密

  1. 优点:

    保密性强,不需要在系统中存储“密码”

  2. 缺点:

    编码/译码,或者说加密/解密要花费一定时间

3 .访问控制

在每个文件的 FCB(或索引结点)中增加一个访问控制列表( Access-Contro List,ACL),以规定每个用户名及其所允许的访问类型。

有的计算机可能会有很多个用户,因此访问控制列表可能会很大,可以用精简的访问列表解决这个问题

精简的访问列表釆用拥有者、组和其他三种用户类型。

  • 拥有者:创建文件的用户。
  • 组:一组需要共享文件且具有类似访问的用户。
  • 其他:系统内的所有其他用户。

这样只需用三个域列出访问表中这三类用户的访问权限即可。文件拥有者在创建文件时,说明创建者用户名及所在的组名,系统在创建文件时也将文件主的名字、所属组名列在该文件的FCB中。用户访问该文件时,按照拥有者所拥有的权限访问文件,如果用户和拥有者在同一个用户组则按照同组权限访问,否则只能按其他用户权限访问。UNIX操作系统即釆用此种方法。