Linux文件ACL(FACL)解析

文件ACL针对特定用户指定权限的规则,比UGO规则更灵活


设置ACL权限:setfacl


参数
    -b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
    -k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
    -d,--default:设定默认的acl规则。
    -m:修改一个ACL
    -x:移除一个ACL
    

示例


    1、给lisa用户单独设置对file可读
         

 setfacl -m u:lisa:r file


    2、 给staff组删除执行权限
      

 setfacl -x g:staff file


    3、从所有组撤销写权限
    

     setfacl -m m::rx file


    4、复制一个文件的ACL到另外一个文件
       

   getfacl file1 | setfacl --set-file=- file2


     5、复制一个ACL到默认的ACL规则
           

getfacl --access dir | setfacl -d -M- dir


    6、删除所有ACL规则
        

 setfacl -b file


查看ACL权限:getfacl
  

 getfacl file

ACL高级特性

   mask:用于临时降低用户和组的权限(设置了ACL的用户和组)


[root@Worker2 test1]# getfacl f1
    # file: f1
    # owner: root
    # group: root
    user::rw-
    user:hadoop:rw-            #effective:---
    group::r--            #effective:---
    mask::---
    other::---

    上例中hadoop用户和组有效权限变成了空

    default:继承子目录权限


    默认情况下,ACL只对当前目录下的文件拥有自定义权限,对其子目录没有,设置default参数可继承其后续创建的子目录权限

注意:1、如果只设置了default继承权限,当前文件夹是无该权限的
     2、之前存在的子目录无权限,只对设置默认权限后的子目录有权限


详细示例:


    1、root用户创建三级目录
  

 [root@Spark-Worker2 /]# mkdir -p /111/222/333
    [root@Spark-Worker2 /]# tree /111
/111
└── 222
    └── 333


2、查看权限

[root@Spark-Worker2 /]# getfacl /111
getfacl: Removing leading '/' from absolute path names
# file: 111
# owner: root
# group: root
user::rwx
group::r-x
other::r-x


 3、给hadoop用户对/111目录赋予权限

[root@Spark-Worker2 /]# setfacl -m u:hadoop:rwx /111
[root@Spark-Worker2 /]# getfacl /111
getfacl: Removing leading '/' from absolute path names
# file: 111
# owner: root
# group: root
user::rwx
user:hadoop:rwx
group::r-x
mask::rwx
other::r-x


 4、 默认情况下,hadoop用户只能在/111文件夹下拥有写权限,其子目录没有写权限

[hadoop@Spark-Worker2 111]$ touch h1
[hadoop@Spark-Worker2 111]$ cd 222
[hadoop@Spark-Worker2 222]$ touch h2
touch: cannot touch ‘h2’: Permission denied


5、给/111/222目录赋予读写执行权限
      

[root@Spark-Worker2 /]# setfacl -m d:u:hadoop:rwx /111/222
[root@Spark-Worker2 /]# getfacl  /111/222
getfacl: Removing leading '/' from absolute path names
# file: 111/222
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:hadoop:rwx
default:group::r-x
default:mask::rwx
default:other::r-x


6、hadoop用户不能在/111/222/内及已存在的333目录内拥有写权限

[hadoop@Spark-Worker2 222]$ touch h2
touch: cannot touch ‘h2’: Permission denied
[hadoop@Spark-Worker2 222]$ cd 333/
[hadoop@Spark-Worker2 333]$ touch h3
touch: cannot touch ‘h3’: Permission denied


7、对于/111/222/内新创建的目录,hadoop拥有写权限

[hadoop@Spark-Worker2 222]$ touch h2
touch: cannot touch ‘h2’: Permission denied
[hadoop@Spark-Worker2 222]$ cd 333/
[hadoop@Spark-Worker2 333]$ touch h3
touch: cannot touch ‘h3’: Permission denied

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值