• setfacl 命令的常用用法


    setfacl命令----可以用来细分linux下的文件权限。
    chmod命令----可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
    换句话说,setfacl可以更精确的控制权限的分配。
    比如:让某一个用户对某一个文件具有某种权限。
    
    这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
    ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
    如,某一个文件,不让单一的某个用户访问。
    
    setfacl命令可以识别以下的规则格式:
    [d[efault]:] [u[ser]:]uid [:perms] 指定用户的权限,文件所有者的权限(如果uid没有指定)。
    [d[efault]:] g[roup]:gid [:perms] 指定群组的权限,文件所有群组的权限(如果gid未指定)
    [d[efault]:] m[ask][:] [:perms] 有效权限掩码
    [d[efault]:] o[ther] [:perms] 其他的权限 
     
    # getfacl /tengqing/                
    getfacl: Removing leading '/' from absolute path names
    # file: tengqing/                      #文件名为:tengqing
    # owner: root                          #文件拥有者是root
    # group: root                          #文件属组是group
    user::rwx                              #拥有者root的权限
    user:tengqing:rwx                      #用户tengqing权限,通过命令:setfacl -m u:tengqing:rwx tengqing 来可以设定
    group::r-x                             #属组root的权限
    mask::rwx                              #掩码
    other::r-x                             #其它人的权限
    default:user::rwx                      #默认权限,当用户创建文件时,会使用这个权限应用到新创建的文件
    default:user:tengqing:rwx              #用户tengqing的默认权限,通过命令:setfacl -m d:u:tengqing:rwx tengqing 来设定
    default:group::r-x
    default:mask::rwx
    default:other::r
    -x
    # setfacl --version                        #本篇所使用的setfacl版本
    setfacl 2.2.49 
    # tune2fs -l /dev/sda3 | grep option       #查看文件系统是否支持acl权限控制
    Default mount options:    acl  
    开启acl支持有两种方法:
       1)、修改mount选项:
    # mount -o remount,acl /dev/vda3 /mnt/acltest
    # vim /etc/fstab                       #开机自动挂载
    /dev/vda3 /mnt/acltest ext4 defaults,acl 0 0 2)

            2)、使用tune2fs修改文件系统信息:

      tune2fs开启acl后已是永久有效,无需再改fstab的mount选项:
    # tune2fs -o acl /dev/vda3           #修改文件系统自身信息来设置acl选项
    # tune2fs -o ^acl /dev/vda3          #取消acl选项
    
    # setfacl -m u:joe:rx bobdir/        #给某个用户设置权限
    # setfacl -m g:aclgp1:rx bobdir/ #给某个组设置权限
    # setfacl -x g:aclgp1 bobdir/ #取消某项权限

    对于组权限,setfacl设置的权限只对主组(即useradd -g或usermod -g的组)有效,对附加组(即useradd -G或usermod -aG的组)无效,即使文件的所有组已改为附加组。

    setfacl和chmod设置的权限可以相互覆盖,当二者设置的权限不一致时,以使用getfacl看到的“#effective:”后的权限为准。

     

  • 相关阅读:
    关于JS中判断两个数组相等
    用JS实现二叉树
    elementUI select组件 默认选择第一项
    angular [src] 绑定url或src 报XSS错误
    easy-mock本地搭建工程实操
    array splice split || string split slice 傻傻分不清楚=>终于弄清楚了
    循环=>轮回=>js循环比拼
    vue-cli 搭建工程配置 => 你想要这里都有
    git分支问题 查看、创建、关联、删除本地/远程分支
    vue知识点 && 错误点 => 持续更新
  • 原文地址:https://www.cnblogs.com/reachos/p/8717077.html
Copyright © 2020-2023  润新知