Linux系统中文件权限ACL功能(下)。

(1)      配置ACL有效权限。

l  目前还没有学习如何建立分区,所以利用现有分区中的tmp目录。

[root@srv ~]# cd /tmp 

l  用户tony对目录24的权限是可读、可写、可执行。

[root@srv tmp]# getfacl 24    

# file: 24

# owner: root

# group: root

user::rwx

user:tony:rwx

group::r-x

mask::rwx

other::r-x

l  切换到用户tony后,可进入目录24,也可以浏览和写入。

[root@srv tmp]# su - tony    

[tony@srv ~]$ cd /tmp/24

[tony@srv 24]$ mkdir Season8

[tony@srv 24]$ ll

total 4

drwxrwxr-x 2 tony tony 4096 Feb 16 20:30 Season8

l  回到root用户。

[tony@srv 24]$ exit          

l  指定目录24有效权限为可读、可执行。

[root@srv tmp]# setfacl -m m:rx 24    

l  切换到用户tony后,可进入目录24,也可以浏览。

[root@srv tmp]# su - tony             

[tony@srv ~]$ cd /tmp/24

[tony@srv 24]$ ll

total 4

drwxrwxr-x 2 tony tony 4096 Feb 16 20:30 Season8

l  但是已经没有了写入权限。

[tony@srv 24]$ mkdir Season7    

mkdir: cannot create directory `Season7': Permission denied

明明配置了用户tonyACL中有写入权限,为什么这里没有权限写了呢?这是因为目录24上配置的有效ACL为可读、可权限,Linux会将有效权限于用户或用户组的ACL进行“AND”运行,也就是说只有在有效ACL中有的权限用户或用户组才可能得到。目录24的有效权限是可读、可执行,所以对该目录配置ACL时,最多可以得到这二个权限。即使tony有写权限也是没有意义的。

getfacl:查看文件或目录的ACL

通过ls -l”或“ll”命令浏览文件或目录时,只能知道文件或目录是否已配置了ACL功能,但具体配置的内容必须使用getfacl命令查看,该命令语法如下。

getfacl [-dR] [--omit-header] [--no-effective] 文件|目录...

常用选项:

l  文件|目录...:需要显示ACL的文件或目录。

l  -d:显示默认的ACL

l  -R:显示目录及其子目录和文件的ACL

l  --omit-header:不显示文件或目录的基本信息。

l  --no-effective:不显示有效权限。

getfacl命令可以显示配置了ACL的文件或目录的准确权限,下面看几个getfacl命令的例子。

l  目录fringe权限部分以“+”结尾,说明该目录配置了ACL

[root@srv tmp]# ll

total 15

drwxr-xr-x+ 2 root root  1024 Feb 16 15:05 fringe

drwx------  2 root root 12288 Feb 16 12:47 lost+found

drwxr-xr-x  2 root root  1024 Feb 16 15:09 weeds

l  显示目录fringe的默认权限。

[root@srv tmp]# getfacl fringe/     

# file: fringe                 #文件或目录的名称。

# owner: root                #文件或目录的的所有者。

# group: root                 #文件或目录的拥有组。

user::rwx                    #文件或目录的所有者权限。

l  用户charles的权限,后面的“#effective”显示的是该用户有效权限。root用户为charles配置的该目录权限是rwx,但由于该目录的有效权限是rx,所以最后该用户实际的权限只有rx

user:charles:rwx              #effective:r-x

group::r-x        #文件或目录的拥有组权限。

mask::r-x        #文件或目录的最大权限。

other::r-x        #其他用户权限。

提示:在为文件和目录配置了ACL功能后,通过ls -l”或“ll”命令浏览文件或目录时,拥有组权限位显示的不再是该文件或目录拥有组权限,而是ACL的最大权限,所以要查看文件的准确权限应该使用getfacl命令。

 

 

你可能感兴趣的:(linux,休闲,acl.setfacl,getfacl,onlyzq)