递归ACL权限和默认ACL权限

递归acl权限,是指父目录在设定acl权限时,所有子文件和子目录也会拥有相同的acl权限.(主要针对目录下已有的文件)

[linuxidc@LAMP vampire]$ ll
total 0
-rw-rw-r-- 1 linuxidc vampire 0 May 18 22:11 anothertest.file
-rw-rw-r-- 1 linuxidc vampire 0 May 18 22:11 test.file

可以看到当前linuxidc目录下的两个文件都没有acl权限
现在使用setfacl设置目录linuxidc的acl递归权限

[linuxidc@LAMP vampire]$ cd ..
[linuxidc@]$ setfacl -m u:iaknehc:rx -R linuxidc
[vampire@]$ ll
total 4
drwxrwxr-x+ 2 linuxidc vampire 4096 May 18 22:11 linuxidc
[vampire@]$ cd linuxidc
[vampire@LAMP linuxidc]$ ll
total 0
-rw-rwxr--+ 1 linuxidc vampire 0 May 18 22:11 anothertest.file  //已存在的文件都会继成到父目录的acl权限
-rw-rwxr--+ 1 linuxidc vampire 0 May 18 22:11 test.file

可以看到设置到目录linuxidc上的acl权限,同样作用于目录中文件上.
该命令只设置的acl权限只能作用于在该命令执行时目录中已存在的文件,但是在执行该命令之后创建的
文件就没有设置的acl权限了,也就是命令设置的权限不能递归到未来文件.如下所示

[linuxidc@LAMP vampire]$ touch one.file
[linuxidc@LAMP vampire]$ ll
total 0
-rw-rwxr--+ 1 linuxidc vampire 0 May 18 22:11 anothertest.file
-rw-rw-r--  1 linuxidc vampire 0 May 18 22:20 one.file    //之后创建的文件并没有acl权限
-rw-rwxr--+ 1 linuxidc vampire 0 May 18 22:11 test.file

默认acl权限
如果给目录设置了默认acl权限.那么目录中所有新创建的文件都会继承父目录的acl权限(主要针对之后创建的文件)

[linuxidc@]$ ll  test
total 8
drwxrwxr-x 2 linuxidc vampire 4096 May 18 22:32 one.file
drwxrwxr-x 2 linuxidc vampire 4096 May 18 22:32 two.file

当前test目录和其中的两个文件都没有acl权限
设置test的默认acl权限

[linuxidc@]$ setfacl -m d:u:iaknehc:rx test  //设置目录test的默认acl权限
[linuxidc@]$ getfacl test
# file: test
# owner: linuxidc
# group: linuxidc
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:iaknehc:r-x
default:group::rwx
default:mask::rwx
default:other::r-x

[linuxidc@]$ touch test/three.file  //新建一个文件
[linuxidc@]$ ll test
total 8
drwxrwxr-x  2 linuxidc vampire 4096 May 18 22:32 one.file
-rw-rw-r--+ 1 linuxidc vampire    0 May 18 22:37 three.file  //新建的文件有acl权限,之前创建的文件没有
drwxrwxr-x  2 linuxidc vampire 4096 May 18 22:32 two.file

一般使用setfacl -m d:u:iaknehc:rx -R test,这样之前创建的文件和后来创建的都有acl权限。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13858.html