zoukankan      html  css  js  c++  java
  • linux 文件扩展权限ACL(访问控制列表)

    一.关于文件扩展权限ACL

    在linux中,文件与目录设置不止基础权限:r,w,x,特殊权限:suid,sgid,sticky,还有文件扩展权限ACL,ACL的全称是 Access

    Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权

    限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。

    ACL的作用:让特定用户对特定文件拥有特定权限。

    二.给文件加扩展权限

    1.设置用户stick对文件ceshi.txt拥有的rwx权限 ,stick不属于ceshi.txt的所属主和组,stick是other,怎么做?

    [root@node5 ~]# touch /tmp/ceshi.txt
    [root@node5 ~]# echo "hello world ! " >> /tmp/ceshi.txt 
     
    [root@node5 ~]# getfacl /tmp/ceshi.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/ceshi.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
    
    #参数u:设置某个用户拥有的权限 
    [root@node5 ~]# setfacl -m u:stick:rwx /tmp/ceshi.txt 
    
    #下面输出中:mask表示最大有效权限,特定用户的权限和mask的权限做与运算,得到的权限就是特定用户真正的权限。比如下面stick用户的rwx和mask的rwx相与,得到rwx,此时stick的真正权限就是rwx。
    #我们一般不更改 mask 权限,只要给予 mask 最大权限 rwx,那么任何权限和 mask 权限相与,得出的值都是权限本身。也就是说,我们通过给用户和用户组直接赋予权限,就可以生效,这样做更直观。
    [root@node5 ~]# getfacl /tmp/ceshi.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/ceshi.txt
    # owner: root
    # group: root
    user::rw-
    user:stick:rwx
    group::r--
    mask::rwx
    other::r--
    
    #注意:当我们开启ACL权限后,描述权限的地方会多出一个 "+" 号
    [root@node5 ~]# ll /tmp/ceshi.txt 
    -rw-rwxr--+ 1 root root 15 Oct 15 16:39 /tmp/ceshi.txt
     
    [root@node5 ~]# su stick
    [stick@node5 root]$ cat /tmp/ceshi.txt 
    hello world ! 
    [stick@node5 root]$ echo "可以写入" >> /tmp/ceshi.txt 
     
    [stick@node5 root]$ exit
    exit
    

    三.给目录加扩展权限

    [root@node5 ~]# mkdir /tmp/test
    [root@node5 ~]# getfacl /tmp/test
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/test
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
    #参数-d  default   设置默认acl,对目录有效,此目录下新建的目录或文件都继承此acl权限
    [root@node5 ~]# setfacl -m d:u:stick:rwx /tmp/test
    
    [root@node5 ~]# getfacl /tmp/test
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/test
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    default:user::rwx
    default:user:stick:rwx
    default:group::r-x
    default:mask::rwx
    default:other::r-x
    
    
    [root@node5 ~]# ll /tmp/test -d
    drwxr-xr-x+ 2 root root 6 Oct 15 17:22 /tmp/test
    
    [root@node5 ~]# touch /tmp/test/test.txt
    [root@node5 ~]# mkdir /tmp/test/data
    
    #因为-d参数,所以test下所有创建的文件和目录都继承了默认的acl权限
    [root@node5 ~]# getfacl /tmp/test/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/test/test.txt
    # owner: root
    # group: root
    user::rw-
    user:stick:rwx			#effective:rw-
    group::r-x			#effective:r--
    mask::rw-
    other::r--
    
    [root@node5 ~]# getfacl /tmp/test/data
    getfacl: Removing leading '/' from absolute path names
    # file: tmp/test/data
    # owner: root
    # group: root
    user::rwx
    user:stick:rwx
    group::r-x
    mask::rwx
    other::r-x
    default:user::rwx
    default:user:stick:rwx
    default:group::r-x
    default:mask::rwx
    default:other::r-x
    

    四.给目录下所有文件都加扩展权限

    [root@node5 ~]# mkdir -p /tmp/a/b/c
    
    [root@node5 ~]# touch /tmp/a/test.txt
    
    [root@node5 ~]# cd /tmp/
    
    #-R一定要在-m前面,表示目录下所有文件
    [root@node5 tmp]# setfacl -R -m u:elk:rw- a
    
    [root@node5 tmp]# getfacl a/test.txt 
    # file: a/test.txt
    # owner: root
    # group: root
    user::rw-
    user:elk:rw-
    group::r--
    mask::rw-
    other::r--
    

    五.去掉单个acl权限

    [root@node5 tmp]# setfacl -x u:elk a/test.txt 
    
    [root@node5 tmp]# getfacl a/test.txt 
    # file: a/test.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    mask::r--
    other::r--
    

    六.去掉所有acl权限

    [root@node5 tmp]# setfacl -R -b a
    
    [root@node5 tmp]# getfacl a
    # file: a
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
  • 相关阅读:
    用户需求报告
    结队开发项目——七巧板NABC需求分析
    梦断代码读书笔记3
    课堂练习之环形二维数组
    结对开发之求最大子数组的溢出问题
    《代码之美》第二章读后感(一)
    软件工程项目冲刺阶段二:第五天
    软件工程项目冲刺阶段二:第四天(06-06)
    软件工程项目冲刺阶段二:第三天
    课程评价
  • 原文地址:https://www.cnblogs.com/renshengdezheli/p/13948939.html
Copyright © 2011-2022 走看看