学习笔记:Linux 文件权限访问控制列表ACL

ACL是Linux里面常见的概念但并不是Linux特有的。很多产品包括硬件都有ACL的概念,比如思科交换机路由器也有ACL。无论在什么地方看到ACL,它的名称既然叫访问控制列表那就是要实现控制功能的,确切的说ACL就是用来实现灵活的权限控制的。

ACL的常用参数及使用格式

  1. getfacl file |directory #查看ACL属性
  2. setfacl -m u:uname:rwx file|directory #指定用户ACL权限
  3. setfacl -M file.acl file|directory #通过调用文件的方式授予ACL权限
  4. setfacl -m g:group:rw file| directory #指定组ACL权限
  5. setfacl -m d:u:uname:rx directory #默认权限,此目录新建文件默认有ACL
  6. setfacl -x u:uname file |directory #删除用户ACL权限
  7. setfacl -X file.acl directory #通过调用文件删除ACL
  8. setfacl -k dir #删除默认ACL权限
  9. setfacl –b file1 #清除所有ACL权限
  10. getfacl file1 | setfacl --set-file=- file2 #复制file1的acl权限给file2
  11. --set #set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含 UGO的设置,不能象-m一样只是添加ACL就可以

示例:

setfacl --set u::rw,u:wang:rw,g::r,o::- file1

ACL的优先级顺序是所有者>ACL自定义用户>ACL自定义组>其他人

当一个用户去访问某个文件的时候,它会判断访问此文件的人是不是所有者,如果是权限立即生效,后面不会再继续往后判断,如果不是那它继续判断访问者是否ACL指定的用户,如果是那ACL里面设置那用户的权限生效了,它就不往后看了。

mask权限用来做权限的限高的,所有自定义的用户和组都只能比它低而不能比它高

这有什么用呢?我们可能会遇到这样一种场景,我们针对了很多用户设置了ACL权限,读写执行各不相同难以管理。某天觉得这些用户的权限稍大了,要把他们的权限设小一点,如果用传统的方法一个个的手动设置太麻烦了十几个呢,那这时候mask的作用就体现出来了,我们只需要把mask设置小一点,因为所有人的权限只能比它低,就全降级了。

备份和恢复ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。

但是tar等常见的备份工具是不会保留目录和文件的ACL信息的

需要额外的备份与恢复ACL操作

  • getfacl -R /tmp/dir1 > acl.txt
  • setfacl -R -b /tmp/dir1
  • setfacl -R --set-file=acl.txt /tmp/dir1
  • setfacl --restore acl.txt
  • getfacl -R /tmp/dir1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值