36-文件共享与文件保护
文件共享
多个用户共享同一个文件,意味着系统中只有一份文件数据,数据一改俱变
与共享对应的是复制的行为
硬链接(基于索引结点的共享方式)
索引节点,是一种文件目录的瘦身策略。由于检索文件时只需要用到文件名,因此可以将除了文件名之外的其他信息存放到索引结点中。这边目录项就只包含文件名、索引结点指针。
索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数
若count=2,说明此时有两个用户目录项链接到该索引结点上,或者说有两个用户在共享此文件。
若count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。
若count=0,系统负责删除文件
软连接(基于符号链的共享方式)
Link类型的文件,记录了文件的路径,类似于文件的快捷方式.
操作系统一层一层查找目录,最终找到共享文件
即使软连接指向的共享文件已被删除,Link型文件依然存在,只是通过Link型文件的路径去查找共享文件会失败
由于用软连接的方式去访问共享文件时要查询多级目录,会有多次磁盘I/O,因此用软连接访问
文件保护
口令保护
为访问文件设置口令.
口令一般存放在文件对应的FCB或索引节点中。用户访问文件前需要先输入"口令"。操作系统会将用户提供的口令与FCB中存储的口令进行比对,若正确,则允许访问。
优点:
- 保存口令的空间开销不多,验证口令的时间开销小
缺点: - 正确的"口令"存放在系统内部,不够安全
加密保护
使用某个"密码"对文件进行加密,在访问文件时需要提供正确的密码,才能对文件进行加密。
优点:
保密性强,不需要在系统中存储"密码"
编码/译码,或者加密/解密需要花费一定的时间。
访问控制
为每个文件的FCB(或索引结点)中增加一个访问控制表(Access-Control List,ACL),该表中记录了每个用户可以对文件执行的那些擦欧总
- 读:从文件中读数据
- 写:向文件中写数据
- 执行:将文件装入内存并执行
- 添加:将新信息添加到文件结尾部分
- 删除:删除文件,释放空间
- 列表清单:列出文件名和文件属性
精简的访问列表,以"组"为单位,标记各"组"用户可以对文件执行哪些操作
分为系统管理员、文件主、文件主的伙伴,其他用户,若用户想要访问文件,系统会检查该用户所属的文件是否有相应的访问权限。
实现灵活,可以实现复杂的文件保护功能