利用ACL提高Linux系统文件控制力度


  笔者企业前不久为了一个新产品项目,抽调销售、质量、采购等部门人员成立了一个临时项目小组,专门进行一类产品的开发。为了配合他们的工作,笔者在Linux文件服务器上建立了一个文件夹NewProject。公司规定,只有这个项目组的人员可以更改这个文件夹中的内容。而其他用户则无法修改这个文件夹以及文件夹下任何文件的权利。这个需求实现起来有一定的难度。因为他们需要不同部门的员工组成一个新的小组,然后这个小组的成员对这个文件夹具有修改的权限。为了实现这个目标,笔者采用了Linux系统中的ACL(文件存储控制清单)来实现这个需求。

  一、ACL的用途。

  通常情况下,Linux系统中文件与目录都包含有关于文件所有者、文件相关的组以及系统上所有其他用户的权限设定。也就是说,可以通过用户、组等方式来对文件进行权限的设置。但是,却无法针对多个不同组的用户或者多个组设置不同的权限。说得白一点,就是同一个组中的用户具有相同的权限,而不能够同一个组中的用户有某些例外。如在文件服务器上分别有销售部门组、采购部门组等等。销售部门组中的所有用户具有相同的权限。也就是说,要么销售部门的员工全部可以访问文件服务器上的NewProject这个文件夹;要么全部不能够访问。而不能是某个销售员可以访问,而其他销售员则不能够访问。若光靠Linux系统默认的文件访问权限控制规则,是无法实现这个目的的。

  若企业现在要实现跨部门的合作,几个部门中的某些员工需要对某些文件服务器上的文件或者文件夹有读写的权限,此时就要利用到Linux操作系统中的ACL(文件访问控制清单)功能。也就是说,只有通过这个功能才能够让同一个组中的个别成员有有别于其他成员的文件访问权限。

  二、具体配置。

  废话少说,接下去大家就看看笔者的配置过程,来直观的了解一下ACL文件存取控制清单的作用。如果大家要了解这个ACL文件存取控制清单的具体作用,可以先查看一下系统对于这个功能的大致介绍。要查看这方面的内容,可以在Linux系统的终端输入man acl来实现这个目的。示意图如下:

  第一步:创建文件夹并赋予相关的权限。

  笔者首先在文件服务器上创建了一个存放新项目信息的NewProject文件夹。由于笔者文件服务器是部署在一个独立的Linux服务器上,所以硬盘基本上是文件服务器独享的。故在建立文件夹的时候,没有为用户设置磁盘限额。如果大家文件服务器跟邮件服务器等其他应用服务器共用一台服务器或者一块硬盘的时候,最好要养成为新文件夹设置磁盘限额的习惯。防止硬盘因为新项目存放文件的需要而被迅速耗用光,从而给其他应用服务产生不利的影响。具体磁盘配额如何设置,大家可以参考相关的问题。

  另外,还需要给这个目录设置特殊的权限,笔者这里给这个文件夹的权限为1777。这个数字表示所有用户都可以在这个目录中创建文件,但是只有文件的所有者才能够删除文件。这个权限就保证项目组的所有成员都可以在这个NewProject文件夹下保存图片、新建文件等等。而且只有自己可以删除自己建立的文件。不过光这个限制还不行,因为其他员工也可以往这个文件夹中存放内容。为此还需要通过ACL来限制其他用户的权利。另外,除了文件所有者之外,其他人(包括这个项目小组中的其他成员)只能够查看这个文件,但是无法进行修改。所以还需要设置项目小组中的其他成员可以修改这个文件夹下的文件。

  • 1
  • 2
  • 下一页

相关内容