6.2.5 文件共享与安全

1.文件共享的实现方法

文件共享指允许不同用户共同使用同一个文件。实现文件共享的目的就是在存储设备上只需存储一个文件副本,而让多个用户共享这一个文件,从而节省存储空间,减少复制文件的重复性工作。文件共享有两种形式:静态共享和动态共享。

可以使用下列3种方式实现文件的静态共享。

(1)绕道法

要求所有用户在当前目录下工作,用户对所有文件的访问都是相对于当前目录进行的。使用绕道法进行文件共享时,用户从当前的目录出发,向上返回到与所要共享目录所在路径交叉点,再顺序下访到共享文件,需要用户指定所要共享文件的逻辑位置或到达共享文件的路径。可见,其搜索效率是很低的。

(2)链接法

链接法是将一个目录中的链接指针直接指向共享文件的所在目录。与绕道法一样,仍需要用户指定被共享和被链接的目录。

(3)基本目录法

基本目录法把所有文件目录分成两部分,一部分是基本文件目录(Basic File Directory,BFD),包括文件的结构信息、物理块号、存取控制和管理信息等,并由系统赋予唯一的内部标志符来标志;另一部分是符号文件目录表,包括用户给出的符号名和系统赋给文件说明信息的内部标志,即文件名和文件内部标志符。其结构如图6-6所示。

6.2.5 文件共享与安全 - 图1

图 6-6 基于基本目录的文件共享

图6-6中,基本目录中的0、1、2分别指向基本目录自身、空闲文件目录(Free File Directory,FFD)和包含用户目录信息的主文件目录。图中有两个用户Meng和Zhang,他们分别用符号名os.ppt和czxt.ppt共享了文件B,都对应ID为6的同一个物理文件。从图6-6中可知,共享文件机制在这种结构中很容易实现,如果还有其他用户共享文件B,那么只需要在该用户的SFD中增加一个表项,给出文件名,并将其ID设为6。

2.存取控制

(1)文件存取控制的功能

1)对于拥有读写或执行权限的用户,应让其对文件进行相应的操作。

2)对于没有读写或执行权限的用户,应禁止其对文件进行相应的操作。

3)应防止非法用户访问文件。

4)应防止用户越权使用文件。

(2)存取控制验证程序的主要工作流程

1)评审用户存取权限。

2)比较用户存取权限与本次存取要求是否一致。

3)将存取要求和被访问的保密性比较,检查是否有冲突。

(3)验证用户存取权限的方法

1)存取控制矩阵。它是二维矩阵。一维是所有用户,另一维是所有的文件。矩阵中的每一项指明用户对相应文件的访问权限。该方法的主要缺点是占用空间大。

2)存取控制表。通常采用文件的二级存取控制。第一级对用户分类:文件属主(owner)、文件属主的同组用户(group)、其他用户(other);第二级对操作权限进行分类:读操作(r)、写操作(w)、执行操作(x)、不能执行任何操作(-)。存取控制表中列出不同用户类型对文件的操作权限。

3)用户权限表。系统为每个用户建立一张用户权限表,将用户所要访问的文件名集中在一张表中,表中每个表项指明对相应文件的访问权限。

4)口令方式。用户为每个文件设定一个口令,并附在用户文件目录中。

5)密码。用户创建源文件,并将数据写入存储设备时,对文件进行编码,读出文件时,对其译码解密。