zoukankan      html  css  js  c++  java
  • 特殊权限和facl

    1 FACL访问控制    1

    1.1 FACL简介    1

    1.2 getfacl命令查看acl权限    1

    1.3 setfacl设置文件的cal权限    1

    1.4 批量添加acl权限    1

    1.5 取消权限    1

    1.6 acl高级特性Default()    1

    2 Linux系统特殊权限    1

    2.1 Linux特殊权限    1

    2.1.1 set_uid    1

    2.1.2 set_gid    1

    2.1.3 sticky    1

    2.2 权限属性chattr    1

    2.3 进程掩码umake    1

    2.4 特殊权限练习题    1

    1. FACL访问控制

    2. FACL简介

        FACL(Filesystem Access Conreol List)是指文件访问控制列表,该属性可以利用文件扩展保存额外的访问控制权限,比如有一次额情况:storm用需要创建一个test文件,他需要cathy用户同样具有rw权限,通常的权限控制做法是需要修改test文件的other权限为rw,但这样做以后所有的用户都具有rw权限,带来极大的安全隐患,此时就该facl发挥作用的时候了。

        FACL常用的命令有2个:setfacl和getfacl,这两个命令普通用户都具有执行权限、

    1. getfacl命令查看acl权限

    [root@oldboy ~]# getfacl test

    # file: test

    # owner: root

    # group: root

    user::rw-

    group::r--

    other::r--

    可以看到,test文件只有基本的user、group、other、该文件对于other用户是只读文件

    1. setfacl设置文件的cal权限

    [root@oldboy ~]# setfacl -m u:oldboy:rw /root/test

    [root@oldboy ~]# getfacl test

    # file: test

    # owner: root

    # group: root

    user::rw-

    user:oldboy:rw-

    group::r--

    mask::rw-

    other::r--

    1. 当设置了facl权限以后利用getfacl查看发现多了一行:user:oldboy:rw-,表示该文件针对oldboy用户拥有额外的权限rw,此时用户oldboy就具有对文件test的读写权限,但对于其他用户文件是只读的
    2. 使用ls -al查看该文件,在权限一列显示为如下,多了+号,表示该文件具有额外的权限,使用getfacl命令可以查看

    [root@oldboy ~]# ll test

    -rw-rw-r--+ 1 root root 0 8月 17 14:52 test

        3、添加额外组权限只需要将setfacl -m u:oldboy:rw test 命令中的u改为g即可

    1. 批量添加acl权限

    用逗号隔开

    [root@oldboy ~]# setfacl -m u:oldboy:rw,u:oldgirl:rw,u:oldboy1:rw test

    1. 取消权限

        -x:为取消acl权限

    [root@oldboy ~]# setfacl -x u:oldboy test

    [root@oldboy ~]# getfacl test

    # file: test

    # owner: root

    # group: root

    user::rw-

    group::r--

    mask::r--

    other::r—

        -b:取消某个文件的全部cal权限

    [root@oldboy ~]# setfacl -b test

    1. acl高级特性Default()

        1、-R:修改现有的文件和目录下面所用文件以及目录的acl权限

    [root@oldboy ~]# setfacl -R -m u:oldboy:rwx /root/local

    [root@oldboy ~]# ll local/test

    -rw-rwxr--+ 1 root root 0 8月 17 16:06 local/test

        2、d:设置目录的cal权限,之后在此目录下创建的文件和目录都继承该目录的所用权限(继承)

    [root@oldboy ~]# ll -d local/

    drwxr-xr-x 2 root root 6 8月 17 16:12 local/

    [root@oldboy ~]# setfacl -m d:u:oldboy:rw local/

    [root@oldboy ~]# ll -d local/

    drwxr-xr-x+ 2 root root 6 8月 17 16:12 local/

    [root@oldboy ~]# touch local/test

    [root@oldboy ~]# ll local/test

    -rw-rw-r--+ 1 root root 0 8月 17 16:14 local/test

    1. Linux系统特殊权限

    2. Linux特殊权限

        对可执行文件的setuid或setgid权限表示将以文件的用户(或组)身份运行,而不是以运行命令的用户身份

        目录粘滞位可以为文件删除设置特殊限制,仅文件所有者(和root用户)可以删除目录中的文件。

        用符号表示: setuid=u+s; setgid=g+s; sticky=o+t

        用数值表示: setuid=4; setgid=2; sticky=1

    1. set_uid

        对可以执行的文件有意义,文件的执行有效身份为文件的拥有者,而不是执行者的身份

        oldboy对于文件test为其他用户,没有任何权限

        suid授权方法

        suid 4000 权限字符s(S),用户位置上的x位上设置。

        授权方法:chmod 4755 passwd

    chmod u+s passwd

        suid作用

        让普通用户临时拥有可执行的二进制文件的所属主权限,二进制文件需要有执行权限。

        当二进制文件没有执行权限,suid的权限显示就是大S。suid仅对二进制可执行程序有效。

        如果普通需要操作没有权限的文件,为对应的命令赋予Suid权限,可以实现操作。

     

        注意:suid双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。

    [root@oldboy ~]# ll /public/test

    -rw-r----- 1 root root 7 8月 17 17:07 /public/test

    [oldboy@oldboy public]$ cat /public/test

    cat: /public/test: 权限不够

        用chmod设置bin/cat可执行文件特殊权限

    [root@oldboy ~]# chmod u+s /bin/cat

    [root@oldboy ~]# ll /bin/cat

    -rwsr-xr-x. 1 root root 54080 4月 11 12:35 /usr/bin/cat    

    oldboy用户用cat查看/public/test

    [oldboy@oldboy ~]$ cat /public/test

    135464

    1. set_gid

    1. 文件的有效执行组身份为文件的拥有组,而不是执行者的组身份
    2. 目录里新建的文件的拥有组会自动继承目    录的拥有组身份。

    3、sgid作用

        针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。

        默认所有用户创建文件,用户和组都是自身,Sgid可以让其他用户再此目录下创建的文件和目录,具有和    此目录相同的用户组设置。

        当为某个目录设置了sgid位以后,在该目录中新创建的文件具有该目录的所有组权限,而不是创建该文件    的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。

    用oldboy用户创建一个目录oldboy,root给目录sgid权限

    [oldboy@oldboy public]$ mkdir oldboy

    [root@oldboy ~]# chmod g+s /public/oldboy/

    root用户在oldboy下创建一个目录,查看目录信息,发现拥有者是root,但组是oldboy组,继承了oldboy目录的属性

    [root@oldboy ~]# mkdir /public/oldboy/test

    [root@oldboy ~]# ll -d /public/oldboy/test/

    drwxr-sr-x 2 root oldboy 6 8月 17 18:08 /public/oldboy/test/

     

    1. sticky

    1、sticky授权方法

        粘滞位 1000 权限字符t(T),其他用户位的x位上设置。

        授权方法:chmod 1755 /tmp

    chmod o+t /tmp

    2、sticky作用

        让多个用户都具有写权限的目录,每个用户只能删自己的文件,表现在others的x位,用小t表示,如果没    有执行权限是T,那么一个目录即使它的权限为 "777" 如果是设置了粘滞位,除了目录的属主和 "root    " 用户有权限删除,除此之外其他用户不能删除这个目录。

     

    1. 权限属性chattr

        -i:不得任意更改文件或目录

        -a:让文件和目录仅可追加内容

    1. 进程掩码umake

        反向掩码:修改默认创建目录或文件的权限

        目录默认最大为777

        文件默认最大为666

    1. 特殊权限练习题

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Vue.js——vue-router 60分钟快速入门
    史上最全最强SpringMVC详细示例实战教程
    介绍用C#和VS2015开发基于Unity架构的2D、3D游戏的技术
    iphone导入照片不显示,不同步怎么整
    Unity 3D入门简介
    Vue + Element UI 实现权限管理系统
    Spring Boot + Spring Cloud 构建微服务系统
    linux下文件的复制、移动与删除
    2017年全球AI芯片公司大盘点
    人工智能爆发 中美AI芯片大比拼
  • 原文地址:https://www.cnblogs.com/majinhai/p/9534080.html
Copyright © 2011-2022 走看看