29 文件共享与保护
1 文件共享
1.1 概述
文件共享使多个用户(进程)共享同一份文件,系统中只需保留该文件的一份副本。否则,每个使用共享文件的用户都有各自的副本,会造成对存储空间的极大浪费。
随着计算机技术的发展,文件共享的范围已由单机系统发展到多机系统,进而通过网络扩展到全球。这些文件的分享是通过分布式文件系统、远程文件系统、分布式信息系统实现的。
1.2 基于索引结点的共享方式(硬链接)
在树形结构的目录中,当有两个或多个用户要共享一个子目录或文件时,必须将共享文件或子目录链接到两个或多个用户的目录中,才能方便地找到该文件。
这种共享方式中引用索引结点,即文件的物理地址等文件属性信息,不再是放在目录项中,而是放在索引结点中。在文件目录中只设置文件名及指向相应索引结点的指针。
在索引结点中还应有一个链接计数count。当count=2时,表示有两个用户目录项链接到本文件上,共享此文件。添加和删除用户时count随之变化,count为0时,将删除此文件。
1.3 利用符号链实现文件共享(软链接)
为使用户B能共享用户A的一个文件F,可创建一LINK类型名为Flink的新文件,并将文件Flink写入用户B的目录中,以实现用户B的目录与文件F的链接。在Flink文件中只包含被链接文件F的路径名。此链接方法被称为符号链接。
在利用符号链方式实现文件共享时,只有文件的拥有者才拥有指向其索引结点的指针。而共享该文件的用户则只有该文件的路径名,并不拥有指向其索引结点的指针。
缺点
-
当一个符号链接共享的文件拥有者删除文件后,在其他用户访问该链接前,又有用户在相同位置创建名称相同的文件时,该符号链接将仍然有效,但此访问显然是错误。
-
由于需要根据文件路径逐个查找目录,可能导致多次读盘,增大了启动磁盘的频率,符号链索引结点也耗费一定的磁盘空间。
优点
- 网络共享只需提供该文件所在机器的网络地址以及该机器中的文件路径即可。
注意:上述两种链接方式都存在一个共同的问题:每个共享文件都有几个文件名。每增加一条链接,就增加一个文件名。这实质上就是每个用户都使用自己的路径名去访问共享文件。当我们试图去遍历整个文件系统时,将会多次遍历到该共享文件。
硬链接和软链接都是文件系统中的静态共享方法,在文件系统中还存在着另外的共享需求,即两个进程同时对同一个文件进行操作,这样的共享可以称为动态共享。
2 文件安全与保护
影响文件安全性主要因素有三:
- 人为因素
人类有意或无意的破坏。 - 系统因素
由于系统某些部分出现异常,导致数据的破坏或丢失。 - 自然因素
存放在磁盘上的数据,会随着时间推移发生溢出或逐渐消失。
为确保文件系统的安全性,可针对上述原因采用以下措施:
- 通过存取控制来防止人为因素所造成的文件不安全性
- 通过磁盘容错技术来防止磁盘部分故障造成文件不安全性
- 通过“后备系统”来防止自然因素所造成的不安全性
3 访问类型与访问控制
为了防止文件共享可能会导致文件被破坏或未经核准的用户修改文件,文件系统必须控制用户对文件的存取。为此,须在文件系统中建立相应的文件保护机制。
文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。
3.1 访问类型
可加以控制的访问类型主要有以下几种:
- 读:从文件中读。
- 写:向文件中写。
- 执行:将文件装入内存并执行。
- 添加:将新信息添加到文件结尾部分。
- 删除:删除文件,释放空间。
- 列表清单:列出文件名和文件属性。
此外还可以对文件的重命名、复制、编辑等加以控制。这些高层的功能可以通过系统程序调用低层系统调用来实现。
3.2 访问控制
1) 访问控制列表
最常用的方法是根据用户身份进行控制。通常为每个文件和目录增加一个访问控制列表(Access-Control List, ACL),以规定每个用户名及其所允许的访问类型。
这种方法的优点是可以使用复杂的访问方法。其缺点是长度无法预期并且可能导致复杂的空间管理,使用精简的访问列表可以解决这个问题。
精简的访问列表釆用拥有者、组和其他三种用户类型。
- 拥有者:创建文件的用户。
- 组:一组需要共享文件且具有类似访问的用户。
- 其他:系统内的所有其他用户。
文件拥有者在创建文件时,说明创建者用户名及所在的组名,系统在创建文件时也将文件主的名字、所属组名列在该文件的FCB中。
用户访问该文件时,按照拥有者所拥有的权限访问文件,如果用户和拥有者在同一个用户组则按照同组权限访问,否则只能按其他用户权限访问。UNIX操作系统即釆用此种方法。
2) 口令和密码
口令和密码是另外两种访问控制方法。
口令指用户在建立一个文件时提供一个口令,系统为其建立FCB时附上相应口令,同时告诉允许共享该文件的其他用户。用户请求访问时必须提供相应口令。这种方法时间和空间的开销不多,缺点是口令直接存在系统内部,不够安全。
密码指用户对文件进行加密,文件被访问时需要使用密钥。这种方法保密性强,节省了存储空间,不过编码和译码要花费一定时间。
口令和密码都是防止用户文件被他人存取或窃取,并没有控制用户对文件的访问类型。
3) 注意:
现代操作系统常用的文件保护方法,是将访问控制列表与用户、组和其他成员访问控制方案一起组合使用。
对于多级目录结构而言,不仅需要保护单个文件,而且还需要保护子目录内的文件, 即需要提供目录保护机制。目录操作与文件操作并不相同,因此需要不同的保护机制。
4 磁盘容错技术
容错技术往往也被称为系统容错技术SFT。可分为三个级别:第一级别是低级磁盘容错技术,第二级是中级磁盘容错技术,第三级是系统容错技术。
4.1 第一级磁盘容错技术SFT-1
是最基本的磁盘容错技术,主要用于防止因磁盘表面缺陷所造成的数据丢失。它包含双份目录,双份文件分配表以及写后读校验措施。
4.2 第二级磁盘容错技术SFT-2
第二级磁盘容错技术主要用于防止磁盘驱动器和磁盘控制器故障所导致的系统不能正常工作,具体分为磁盘镜像和磁盘双工。
4.3 基于集群技术的容错功能
所谓集群式指一组互连的自主计算机组成统一的计算机系统,就像一台机器一样工作。利用集群系统不仅可提高系统的并行处理能力,还可以提高系统的可用性。
其主要工作模式有三种:热备份模式、互为备份模式、公有磁盘模式。