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:”后的权限为准。

     

  • 相关阅读:
    gcc/g++命令参数笔记
    周总结
    帆软FineBI试用
    C++输入流
    tt
    linux6 安装oracle11g
    linux下修改/dev/shm tmpfs文件系统大小
    centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    Linux Network配置
    安装KornShell(KSH)
  • 原文地址:https://www.cnblogs.com/reachos/p/8717077.html
Copyright © 2011-2022 走看看