zoukankan      html  css  js  c++  java
  • 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:”后的权限为准。

     

  • 相关阅读:
    数据类型装换
    变量及数据类型
    27 网络通信协议 udp tcp
    26 socket简单操作
    26 socket简单操作
    14 内置函数 递归 二分法查找
    15 装饰器 开闭原则 代参装饰器 多个装饰器同一函数应用
    12 生成器和生成器函数以及各种推导式
    13 内置函数 匿名函数 eval,exec,compile
    10 函数进阶 动态传参 作用域和名称空间 函数的嵌套 全局变量
  • 原文地址:https://www.cnblogs.com/reachos/p/8717077.html
Copyright © 2011-2022 走看看