zoukankan      html  css  js  c++  java
  • 权限-3 添加个别特殊的用户的权限(一般 UGO之外)

    FACL控制

    file access control list

    可以对一些特别用户设置权限,而不是只是单一的 UGO权限设置

    设定 acl 的只能是 root 管理员用户,相关命令:getfacl setfacl

    //使用 getfacl 查看权限

    [root@yxlll ~]# touch /home/test.txt
    [root@yxlll ~]# ll /home/test.txt 
    -rw-r--r-- 1 root root 0 Nov  5 09:58 /home/test.txt
    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
    [root@yxlll ~]#

    //使用 setfacl 查看权限

    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
    
    [root@yxlll ~]# setfacl -m u:yxlaa1:rw /home/test.txt 
    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    user:yxlaa1:rw-
    group::r--
    mask::rw-
    other::r--
    
    [root@yxlll ~]# 

    上例表示 添加有个用户名 yxlaa1 ,权限为 rw,再次使用 getfacl 得到 user除了 UGO设置的之外还多了一个 yxlaa1,权限为 rw

    下例为 添加一个组 yxlaagroup 的权限

    [root@yxlll ~]# groupadd yxlaagroup
    [root@yxlll ~]# tail -1 /etc/passwd
    yxlaa1:x:1008:1008::/home/yxlaa1:/bin/bash
    [root@yxlll ~]# setfacl -m g:yxlaagroup:r /home/test.txt 
    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    user:yxlaa1:rw-
    group::r--
    group:yxlaagroup:r--
    mask::rw-
    other::r--
    
    [root@yxlll ~]# 

    当再次用 ll命令查看文件权限时候,会出现 +,此时的文件权限就已经不能用 ll来展示,需要用 getfacl来表示

    [root@yxlll ~]# ll /home/test.txt 
    -rw-rw-r--+ 1 root root 0 11月  5 09:58 /home/test.txt
    [root@yxlll ~]# ll /home/test1.txt 
    -rw-r--r-- 1 root root 0 11月  5 11:50 /home/test1.txt
    [root@yxlll ~]# 

    其中, text.txt 是修改过权限的文件,有个 +,text1.txt是没有修改过的文件,只有 UGO权限

    当切换到别的用户时候,其他用户是不能修改文件,而 yxlaa1用户可以

    当 用户 yxlaa2的权限是 ---,而用户所属组 yxlaagroup的权限为 rw-时,用户的权限以用户名为准

      当用户的有多个组的权限不相同时,则可以满足所有包含的权限

    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    user:yxlaa1:rw-
    user:yxlaa2:---
    group::r--
    group:yxlaa2:-w-
    group:yxlaagroup:r--
    mask::rw-
    other::---
    
    [root@yxlll ~]#-

    例如,yxlaa2用户的权限为 rw- ,而其所属组 yxlaa2 和 yxlaagroup分别为 -w- ,r--,但是用户对文件权限依旧是 ---

    [root@yxlll ~]# setfacl -x u:yxlaa2
    [root@yxlll ~]# getfacl /home/test.txt 
    getfacl: Removing leading '/' from absolute path names
    # file: home/test.txt
    # owner: root
    # group: root
    user::rw-
    user:yxlaa1:rw-
    group::r--
    group:yxlaa2:-w-
    group:yxlaagroup:r--
    mask::rw-
    other::---
    
    [root@yxlll ~]# 

    当用 setfacl-x 删除用户 yxlaa2的权限时,用户的权限为 rw-,包含了2个组的权限

     ACL高级特性  Default

    default :继承

    alice可以对文件夹目录及之后再目录下建的文件有读写执行权限的规划

    [root@yxlll ~]# setfacl -R -m u:yxlaa1:rwX /home
    [root@yxlll ~]# setfacl -m d:u:yxlaa1:rwX /home
    [root@yxlll ~]# tree /home/
    /home/
    ├── amy
    ├── jerry
    ├── john
    ├── kim
    ├── tansir
    ├── test
    ├── test1.txt
    ├── test.txt
    ├── yxlaa1
    ├── yxlaa2
    └── zhaosir
    9 directories, 2 files
    [root@yxlll ~]# touch /home/text2.txt
    [root@yxlll ~]# getfacl /home/text2.txt
    getfacl: Removing leading '/' from absolute path names
    # file: home/text2.txt
    # owner: root
    # group: root
    user::rw-
    user:yxlaa1:rwx   #effective:rw-
    group::r-x   #effective:r--
    mask::rw-
    other::r--
    [root@yxlll ~]#
     

    // setfacl -R 表示递归,更改所有已有的文件的权限

    // setfacl -d 表示继承,设定了 用户yxlaa1的权限,之后在目录下创建的文件,yxlaa1也具有权限

     实例

    touch text.txt  //默认权限是 750

    chmod 640 text.txt  //设置UGO权限为 640

    setfacl xxxxxxxxx  //再添加各个用户的权限

      

  • 相关阅读:
    redis-3.2.5 make 报错
    haproxy 实现多域名证书https
    centos7修改主机名
    ngx_image_thumb模块生成缩略图
    查看nginx在安装时开启了哪些模块
    C# install-package:"xx"已拥有为“xxx”定义的依赖项
    JetBrains 2017/2018全系列产品激活工具
    查看win10版本方法,及win10升级方法
    Windows 10正式版的历史版本
    open '/dev/hwlog_switch' fail -1, 13. Permission denied
  • 原文地址:https://www.cnblogs.com/yxlll/p/13927296.html
Copyright © 2011-2022 走看看