ACL 概述 ACL(Access Control List),主要作用可以提供除属主、属组、其他人的 rwx 权限之外的 细节权限设定。
ACL 的权限控制 (1)使用者(user) (2)群组(group) (3)默认权限掩码(mask)
acl可以理解为在原本的权限上更加灵活的去控制用户的权限,默认的只能是 属主,数组,其他人,三个,假如张三和李四都属于其他人,而我想让张三访问,不让李四访问,在不更改他俩组的情况下acl就可以完成这样的操作
环境:
我现在在/sdb1/里创建了个文件分为 123 他的权限为700 属主和组都是root
创建了3个用户 a1 b2 c3
创建了一个名为 qwe的组,并把c3加入进了qwe组
ACL
格式:setfacl [选项] [acl 参数] 目标文件或目录
常见选项:
-m:设置后续的 acl 参数,不可与-x 一起使用
-x:删除后续的 acl 参数,不可与-m 一起使用
-b:删除所有的 acl 参数
-k:删除默认的 acl 参数
-R:递归设置 acl 参数
-d:设置默认 acl 参数,只对目录有效
对用户添加权限
a1-3 他们现在都没有访问/sdb1/123的权限
setfacl -m u:a1:rw /sdb1/123
# 给a1读写的权限 前面是u就是用户 g就是组
当给了他acl权限之后他后面就有了个+号
现在就可以查看了,而a1 b2 c3 都属于其他人 但是a1 现在通过acl有权限去访问这个文件了
查看acl权限
格式:getfacl 文件或目录
getfacl /sdb1/123
可以看到里面一些详细信息
对组设置权限
setfacl -m g:qwe:rw /sdb1/123
和用户一样只不过把u换成了g
c3属于qwe组所以现在a1和c3都可以去看了
删除权限
setfacl -x u:a1 /sdb1/123
setfacl -x g:qwe /sdb1/123
这样就删除成功了