Linux管理员如何使用ACL设置发送集体权限?

不是每位Linux管理员都知道如何在文件系统上部署访问控制表ACL以增强权限。现在这种情形应该改变。

在基本的Linux权限主题下,权限分配为文件所有者、文件所有组等。Linux系统上的每个文件与目录都有一个用户所有者与组所有者。每个Linux管理员可以调用当前的拥有者列表,使用表1列出的ls -l命令给他们分配权限:

表1:在目前的Linux系统显示当前的权限分配

Sanders-computer:~ sandervanvugt$$ ls -l 


total 24 


drwx------+ 13 sandervanvugt staff  442 Oct 20 20:17 Desktop 


drwx------+ 103 sandervanvugt staff 3502 Oct 21 08:37 Documents 


drwx------+ 289 sandervanvugt staff 9826 Oct 21 10:05 Downloads 


drwx------@ 51 sandervanvugt staff 1734 Sep 22 16:31 Library 


drwx------+ 29 sandervanvugt staff  986 Oct 9 07:59 Movies 


drwx------+  5 sandervanvugt staff  170 May 21 23:19 Music 


drwx------+ 24 sandervanvugt staff  816 Sep 19 22:21 Pictures 


drwxr-xr-x+  4 sandervanvugt staff  136 Apr 12 2013 Public 


drwxr-xr-x  3 sandervanvugt staff  102 Sep 22 16:31 Samsung 


-rwxr-xr-x  1 sandervanvugt staff  324 Sep 23 11:51 bart1 


-rw-r--r--  1 sandervanvugt staff  148 Aug 14 13:12 rekenprogrammaLOG 


-rwxr-xr-x  1 sandervanvugt staff  607 Jul 3 16:59 script3 

如果文件上只需一个拥有者或者一个组,默认的Linux权限方案也可以。

不过,如果你需要给一个组的用户提供文件的控制权,另一个组只需阅读文件,其他的不许访问文件,那么默认的权限就帮不上忙了,这时你需要ACL。

Linux ACL为文件找受托者,允许多个用户与多个组拥有权限。也可以设置默认的访问控制列表,将默认的权限用于在目录中创建的新条款。

setfacl命令使用ACL设置权限。Linux系统通过表2的getfacl命令显示目前的ACL分配情况。

申请权限很简单。例如,Linux管理员想让组织中的销售团队成员访问directory /groups/account里的所有文件的话,可以使用setfacl -R -m g:sales:rx /groups/account。

在该命令中,选项-R用于将ACL递回directory /groups/account里的所有现有条款。选项-m用于变更ACL,g代表的是组,然后是组的名字与分配的权限。

表2:如何用getfacl显示Linux ACL的权限

[root@tls groups]# getfacl account/ 


# file: account/ 


# owner: root 


# group: account 


user::rwx 


group::rwx 


group:sales:r-x 


mask::rwx 


other::--- 

不要担心因为getfacl命令而出现黑屏,这是在自动更改。

默认的Linux ACL

Linux ACL命令在当前文件上设置权限,但是不会自动在新文件上做任何事。通常,如果一位管理员在目录中使用ACL,他们也想ACL适用于目录里创建的所有新文件。这就是默认ACL的特权。

添加默认ACL与使用添加选项复制之前的setfacl命令一样简单。为了将权限分配给目录中的所有新文件,部署以下命令:

setfacl -m d:g:sales:rx /groups/account  

你也可以使用getfacl检查当前默认的ACL设置,如表3所示:

表3:检查默认的Linux ACL分配

相关推荐