码迷,mamicode.com
首页 > 其他好文 > 详细

访问控制列表ACL

时间:2020-03-31 19:27:29      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:dmi   必须   rect   选项   other   facl   lang   常见   访问   

访问控制列表ACL

1.ACL介绍

  • ACL:Access Control List,实现灵活的权限管理
  • 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
  • CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
  • CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
  • ACL生效顺序:所有者,自定义用户,自定义组,其他人
  • ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限

2.ACL的使用

ACL:设置

  • setfacl 可以设置ACL权限

    setfacl -m u:用户名:rwx -R file|directory

    setfacl -m d:u:用户名:rwx -R file|directory

  • 范例:

    [root@centos8 data]#ll f1.txt
    -rw-r--r-- 1 root root 709 Dec 18 14:37 f1.txt
    [root@centos8 data]#setfacl -m u:wang:- f1.txt
    [root@centos8 data]#ll
    total 4
    -rw-r--r--+ 1 root root 709 Dec 18 14:37 f1.txt
    

ACL:查看

  • getfacl file |directory

  • 范例:

    [root@centos8 data]#getfacl f1.txt
    # file: f1.txt
    # owner: root
    # group: root
    user::rw-
    user:wang:---
    group::r--
    mask::r--
    other::r--
    

ACL:删除

  • setfacl -k dir 删除默认ACL权限

  • setfacl –b file1清除所有ACL权限

  • 范例:

    mount -o acl /directory
    getfacl file |directory
    setfacl -m u:wang:rwx file|directory
    setfacl -m g:admins:rw file| directory
    setfacl -x u:wang file |directory
    #清除所有ACL权限
    setfacl -b file1
    #复制file1的acl权限给file2
    getfacl file1 | setfacl --set-file=- file2
    
  • ACL:备份与恢复

    • 主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息

      #备份ACL
      getfacl -R /tmp/dir > acl.txt
      #消除ACL权限
      setfacl -R -b /tmp/dir
      #还原ACL权限
      setfacl -R --set-file=acl.txt /tmp/dir
      #还原ACL权限
      setfacl --restore acl.txt
      #查看ACL权限
      getfacl -R /tmp/dir
      
  • mask 权限

    • mask只影响除所有者和other的之外的人和组的最大权限

    • mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)

    • 用户或组的设置必须存在于mask权限设定范围内才会生效

    • 范例:

      setfacl -m mask::rx file
      
    • 范例:

      [root@centos8 data]#ll f1.txt
      -rw-rw-r--+ 1 root root 728 Dec 18 14:51 f1.txt
      [root@centos8 data]#chmod g=r f1.txt
      [root@centos8 data]#ll f1.txt
      -rw-r--r--+ 1 root root 728 Dec 18 14:51 f1.txt
      [root@centos8 data]#getfacl f1.txt   “”
      # file: f1.txt
      # owner: root
      # group: root
      user::rwuser:
      wang:---
      group::r--
      group:admins:-w- #effective:---
      mask::r--
      other::r--
      
      [root@centos8 data]#setfacl -m mask::rw f1.txt
      [root@centos8 data]#getfacl f1.txt
      # file: f1.txt
      # owner: root
      # group: root
      user::rwuser:
      wang:---
      group::r--
      group:admins:-wmask::
      rwother::
      r--
      [root@centos8 data]#setfacl -m u:wang:rwx f1.txt
      [root@centos8 data]#getfacl f1.txt
      # file: f1.txt
      # owner: root
      # group: root
      user::rwuser:
      wang:rwx
      group::r--
      group:admins:-wmask::
      rwx
      other::r--
      [root@centos8 data]#setfacl -m mask::rw f1.txt
      [root@centos8 data]#getfacl f1.txt
      # file: f1.txt
      # owner: root
      # group: root
      user::rwuser:
      wang:rwx #effective:rwgroup::
      r--
      group:admins:-wmask::
      rwother::
      r--
      
    • --set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样
      只是添加ACL就可以

    • 范例:

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

练习

  1. 在/testdir/dir里创建的新文件自动属于webs组,组apps的成员如:
    tomcat能对这些新文件有读写权限,组dbs的成员如:mysql只能对新文
    件有读权限,其它用户(不属于webs,apps,dbs)不能访问这个文件夹

    mkdir /testdir/dir -pv ; chown -R root:webs /testdir/dir; chmod 2750 -R /testdir/dir
    setfacl -m g:apps:rwx -R /testdir/dir
    setfacl -m g:dbs:rx -R /testdir/dir
    
  2. 备份/testdir/dir里所有文件的ACL权限到/root/acl.txt中,清除
    /testdir/dir中所有ACL权限,最后还原ACL权限

    #备份
    cd /testdir/ ; getfacl -R dir/ > /root/acl.txt
    #清除
    setfacl -b dir/
    #恢复
    setfacl -R --set-file=/opt/acl.txt dir/
    

访问控制列表ACL

标签:dmi   必须   rect   选项   other   facl   lang   常见   访问   

原文地址:https://www.cnblogs.com/Coolcoc/p/12607381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!