zoukankan      html  css  js  c++  java
  • Linux权限管理 特殊权限解析

    SUID:(set uid)只能限定在二进制可执行程序上面。

                  功能:程序运行时的权限从执行者变更成程序所有者的权限

    SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性

       [root@song ~]# su - song

       Last login: Wed May 10 21:22:45 CST 2019 on pts/0

       [song@song ~]$ cat /etc/shadow

         cat: /etc/shadow: Permission denied

    现在赋予文件passwd特殊权限suid

    [root@song ~]# chmod u+s `which cat`
    [root@song ~]# ls -l `which cat`
    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/cat
    再次切换普通用户执行cat,可以发现可以查看该文件了
    [song@song ~]$ cat /etc/shadow
    root:$6$9XC/lEl96ujGI9c8$E55wvS9amcKFj7/0HmblYg0j28FHwfymL.mQliqQNSElicrQKkZLurkSvVAv6NXM/KiJWFYV8NAh8imLiFedb/::0:99999:7:::
    bin:*:17632:0:99999:7:::
    daemon:*:17632:0:99999:7:::
    adm:*:17632:0:99999:7:::
    

    SGID:(set group)不仅能给二进制可执行程序设置,也可以对目录设置

                   功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组

    [root@ken ~]# mkdir test1
    [root@ken ~]# ls -ld test1
    drwxr-xr-x 2 root root 6 Feb 27 22:38 test1
    [root@ken ~]# chmod g+s test1
    [root@ken ~]# chown :ken test1
    [root@ken ~]# touch test1/test.txt
    [root@ken ~]# ls -ls test1/test.txt
    0 -rw-r--r-- 1 root ken 0 Feb 27 22:40 test1/test.txt

    对于设置sbit权限的文件,用户只能删除自己创建的文件,无法删除其他用户的文件

    对目录/tmp添加sbit权限,删除文件的时候显示拒绝操作

    [root@ken ~]# chmod o+t /tmp
    [root@ken ~]# useradd t1
    [root@ken ~]# useradd t2
    [root@ken ~]# su - t1
    Last login: Thu Mar 14 14:04:37 CST 2019 on pts/1
    [t1@ken ~]$ touch /tmp/t1
    [t1@ken ~]$ exit
    logout
    [root@ken ~]# su - t2
    Last login: Thu Mar 14 14:03:59 CST 2019 on pts/1
    [t2@ken ~]$ touch /tmp/t2
    [t2@ken ~]$ rm -rf /tmp/t1
    rm: cannot remove ‘/tmp/t1’: Operation not permitted
    去掉sbit权限之后,再次删除即可
    [root@ken ~]# chmod o-t /tmp
    [root@ken ~]# su - t2
    Last login: Fri Mar 15 12:49:54 CST 2019 on pts/4
    [t2@ken ~]$ rm -rf /tmp/t1

    扩展ACL  :access control list

    例:设置用户ken对文件a.txt拥有的rwx权限 ,ken不属于a.txt的所属主和组,ken是other。怎么做?

    -m表示设置的意思

    [root@ken ~]# setfacl -m u:ken:rwx a.txt
    查看扩展权限getfacl
    [root@ken ~]# getfacl a.txt
    # file: a.txt
    # owner: root
    # group: root
    user::rw-
    user:ken:rwx
    group::r--
    mask::rwx
    other::r--
    去除权限
    [root@ken ~]#  setfacl -R -m u:ken:rw- testdirectory/    #-R一定要在-m前面,表示目录下所有文件
    [root@ken ~]#  setfacl -x u:ken /tmp/a.txt          # 去掉单个权限
    [root@ken ~]#  setfacl -b  /tmp/a.txt              # 去掉所有acl权限
    
    
  • 相关阅读:
    Java高并发24-使用自定义锁生成一个消费模型
    Java高并发连载23-基于AQS实现自定义同步器
    JavaScript连载38-编写评论界面
    Java高并发22-AQS条件变量的支持
    Java高并发21-AQS在共享,独占场景下的源码介绍
    SSH 集成Shiro和EhCache,设置登录超时时间无效解决办法。
    Vue3.0 + Echarts 实现地区人口数量分布展示
    从零开始学VUE之网络模块(Axios)
    从零开始学VUE之VueX(modules)
    从零开始学VUE之VueX(actions)
  • 原文地址:https://www.cnblogs.com/1011cjk/p/10848217.html
Copyright © 2011-2022 走看看