zoukankan      html  css  js  c++  java
  • CentOS ACL

    ACL:访问控制列表(Access Control List)。

    一般来说权限是针对某一类用户设置的。例如:一个文件只有拥有者、组、其他用户三种设置方式,如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的ACL。
    基于普通文件或目录设置 ACL 就是对指定的用户或用户组设置文件的操作权限。
    如果针对某个目录设置了 ACL,则目录中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的 ACL。

    1、setfacl命令,用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。

    -m, --modify=acl:修改文件或目录的扩展ACL设置信息
    -x, --remove=acl:从文件或目录删除一个扩展的ACL设置信息
    -b, --remove-all:删除所有的扩展的ACL设置信息
    -k, --remove-default:删除缺省的acl设置信息
    -n, --no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定
    -d, --default:设置默认的ACL设置信息(只对目录有效)
    -R, --recursive:操作递归到所有子目录和 文件

    常用的增加ACL权限
    ①给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
    ②给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名

    常用的删除ACL权限
    ①删除指定用户的ACL权限: setfacl -x u:用户名 文件名
    ②删除指定用户组的ACL权限:setfacl -x g:组名 文件名
    ③删除文件的所有ACL权限:setfacl -b 文件名

    场景1:/home/data是ftp用户上传数据的目录,现在es用户需要能进行读取和执行。

    [es@bigdata-senior01 ~]$ cd home/data  #没有权限进入
    -bash: cd: home/data: 没有那个文件或目录
    [es@bigdata-senior01 ~]$ getfacl /home/data 
    getfacl: Removing leading '/' from absolute path names
    # file: home/data
    # owner: xu.dm.ftp        #只有xu.dm.ftp有权限
    # group: root
    user::rwx
    group::---
    other::---
    
    [es@bigdata-senior01 ~]$ ll home/data
    ls: 无法访问home/data: 没有那个文件或目录
    [es@bigdata-senior01 ~]$ setfacl -Rm u:es:rx /home/data
    setfacl: /home/data: 不允许的操作
    setfacl: /home/data: 权限不够
    
    [es@bigdata-senior01 ~]$ sudo setfacl -Rm u:es:rx /home/data
    
    [es@bigdata-senior01 ~]$ ll  /home/data -d
    drwxr-x---+ 2 xu.dm.ftp root 224 11月 13 22:36 /home/data
    #这个时候看到目录权限最后又个“+”号,说明是ACL控制目录 [es
    @bigdata-senior01 ~]$ getfacl /home/data getfacl: Removing leading '/' from absolute path names # file: home/data # owner: xu.dm.ftp # group: root user::rwx user:es:r-x #es用户获取了rx权限 group::--- mask::r-x other::---

    场景2:删除/home/data目录es的acl权限,删除全部/home/data的acl权限

    [es@bigdata-senior01 ~]$ sudo setfacl -x u:es /home/data
    
    [es@bigdata-senior01 ~]$ ll /home/data -d
    drwx------+ 2 xu.dm.ftp root 224 1月  12 22:45 /home/data
    #实际上只有一个es用户设置了对/home/data的acl权限,删除后,目录里那个+;号依然在。
    #用getfacl查看后,发现还有一个mask属性遗留 [es
    @bigdata-senior01 ~]$ getfacl /home/data getfacl: Removing leading '/' from absolute path names # file: home/data # owner: xu.dm.ftp # group: root user::rwx group::--- mask::--- other::---
    #全部删除ACL [es
    @bigdata-senior01 ~]$ sudo setfacl -b /home/data [es@bigdata-senior01 ~]$ ll /home/data -d drwx------. 2 xu.dm.ftp root 224 1月 12 22:45 /home/data [es@bigdata-senior01 ~]$ getfacl /home/data getfacl: Removing leading '/' from absolute path names # file: home/data # owner: xu.dm.ftp # group: root user::rwx group::--- other::---

    2、getfacl,用于显示文件上设置的 ACL 信息,格式为“getfacl 文件名称”。

  • 相关阅读:
    python脚本
    python引用,浅拷贝,深拷贝
    postgresql MVCC详解
    sql排它锁
    sqlalchemy使用
    ASP.Net MVC开发基础学习笔记(7):数据查询页面
    js timestamp与datetime之间的相互转换
    聊聊iOS中TCP / UDP 协议
    IOS -执行时 (消息传递 )
    Java对象的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/asker009/p/10261410.html
Copyright © 2011-2022 走看看