Linux下的访问控制列表

作者: Aubin | 来源:发表于2017-07-25 20:11 被阅读3次
    • acl是基于文件系统的,所以支不支持acl在于使用什么文件系统。
      FAT32文件系统不支持权限,也不区分大小写

    • 如果一个分区不是安装系统时分的分区,是一个新的分区的话,默认是不支持acl

    CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

    tune2fs –o acl /dev/sdb1
    mount –o acl /dev/sdb1 /mnt/test
    
    • CentOS7 默认创建的xfs和ext4文件系统具有ACL功能

    ACL生效的顺序

    • 顺序:所有者------->自定义用户------->自定义组------->其他人
    [root@centos7 aubin]# getfacl file 
    # file: file
    # owner: root
    # group: root
    user::rw-                                    #所有者
    user:aubin:-w-                               #自定义用户
    group::r--                                   #冒号中间为空,指的是所属组
    group:aubin:---                              #自定义组
    mask::rw-
    other::r--
    
    • 权限的最后一位变成 + 这里设置了acl
    [root@centos7 app]# ls -al
    -rw-r--r--+  1 root root    8 Jul 25 09:54 file
    
    • ACL写权限
    • acl只给用户写权限,不给读权限。那么用户无法查看文件内容。
      用户可以追加,但是直接编辑会覆盖
    [root@centos7 app]# setfacl -m u:aubin:w file 
    

    acl的设置与查看

    • acl的设置与删除
    #设置用户的acl权限
    [root@centos7 aubin]# setfacl -m u:aubin:rw fstab 
    #设置组的acl权限
    [root@centos7 aubin]# setfacl -m g:root:rx fstab
    [root@centos7 aubin]# getfacl fstab 
    # file: fstab
    # owner: aubin
    # group: aubin
    user::---
    user:aubin:rw-
    group::rw-
    group:root:r-x
    mask::rwx
    other::---
    #
    #删除指定的acl权限
    [root@centos7 aubin]# setfacl -x g:root fstab 
    

    acl的递归

    • acl的复制与清除
    #复制文件的acl权限
    [root@centos7 aubin]# getfacl fstab | setfacl --set-file=- file 
    #清除acl的默认
    [root@centos7 aubin]# setfacl -k fstab 
    #删除所有的acl权限
    [root@centos7 aubin]# setfacl -b fstab
    

    acl的备份与恢复

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

    #将acl信息重定向到acl.bak
    [root@centos7 aubin]# getfacl -R fstab > ./acl.bak         
    [root@centos7 aubin]# cat acl.bak 
    # file: fstab
    # owner: aubin
    # group: aubin
    user::---
    user:aubin:rw-
    group::rw-
    mask::rw-
    other::---
    #清除文件或文件夹的acl规则
    [root@centos7 aubin]# setfacl -R -b fstab 
    #恢复
    [root@centos7 aubin]# setfacl -R --set-file=acl.bak /app/aubin/fstab 
    

    相关文章

      网友评论

        本文标题:Linux下的访问控制列表

        本文链接:https://www.haomeiwen.com/subject/nsdwkxtx.html