ACL权限

ACL权限在什么情况下使用(个人理解):
当要给一个用户与文件属主、属组、其他人权限都不相同的时候使用,也就是说,这个用户对于这个文件不属于三种身份的任何一种,是属于第四种身份,那么我们就需要使用ACL权限去给他赋予单独的权限。

设定ACL权限-setfacl

选项:

-m 设定ACL权限 setfacl -m u(g):用户名(组名):权限 文件名

-x 删除某一用户和组的ACL权限,命令格式 : setfacl -x u(g):用户名(组名) 文件名

-b 删除所有的ACL权限

-d 设定默认的ACL权限,父目录下新建的文件都会继承此权限,命令格式:setfacl -m d:u:用户名:权限 文件名

-k 删除默认的ACL权限

-R 递归设定ACL权限,仅原本存在的文件会生效,命令格式 : setfacl -m u(g):用户名(组名):权限 -R 文件名

例子:

1.在 / 先创建一个testdir1目录

LUA全局调用 全局调用acl_文件名

2.创建三个用户user1,user2,user3以及一个组test1,并将user1,user2添加至test1

LUA全局调用 全局调用acl_用户名_02


3.修改文件属主、属组、权限

LUA全局调用 全局调用acl_LUA全局调用_03


4.给testdir1添加acl权限,使user3单独拥有testdir1的rx权限

(也可设置其他组,将命令中u改为g即可)

这里看到在testdir1权限中多了一个+号,即表示此目录有acl权限。

LUA全局调用 全局调用acl_修改文件_04

5.查看acl权限

可以看到testdir1目录中除属组属主其他三种权限外多出了一个user3的rx权限即acl权限。

图中还有一种权限mask(最大权限),我们可以通过 setfacl -m m:rx将最大权限改为rx,修改完之后此目录的属组权限及acl权限最高只能是rx,即便你将属组权限改为rwx,他的真实权限依然是rx。可以有效防止设置默认acl权限时给的过高,造成不必要的麻烦。

LUA全局调用 全局调用acl_文件名_05


6.测试结果,切换到user3,对testdir1进行操作失败,acl权限生效

LUA全局调用 全局调用acl_修改文件_06