zoukankan      html  css  js  c++  java
  • Linux 文件特殊权限详解[suid/sgid/t]

    setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限,

      即让普通用户可以以root用户的角色执行程序或命令。

    setgid(sgid): 希望一个目录被多个用户(同属于一个组)共享,同一个组的用户可以处理

    粘滞位(t)    : 把一个文件夹的权限都打开,然后共享文件,像/tmp一样,但是 生产环境一般不使用

    suid

    setuid(suid): 针对命令和二进制程序的

    chmod u+s h.txt

    chmod 4777 h.txt

    chmod u-s h.txt

    查看passwd命令的权限

    [root@localhost ftl]# ll /usr/bin/passwd 
    
    问题: passwd文件的属组是root,表示只有root用户可以访问的文件,为什么普通用户依然可以使用该命令更改自己的密码?
    答案:当普通用户[omd]使用passwd命令的时候,系统看到passwd命令文件的属性有大写s后,表示这个命令的属主权限被omd用户获得,也就是omd用户获得文件/etc/shadow的root的rwx权限
    

    image

    用户添加s权限【用4表示s位,有大写s表示有suid权限】

    [root@localhost ftl]# chmod 4600 hhh.txt       -->【当x位没有小写x执行权限的时候,sudi的权限显示的就是大S】
        [root@localhost ftl]# chmod 600 hhh.txt
    


    image
      

    查找拥有s权限且文件权限为755的文件

    find / -type f -perm 4755

    image

    取消ping命令的共享权限
                   

    which ping --> /bin/ping -->显示4755
                    chmod 755 /bin/ping
                    普通用户用不了 ping命令了

    image

    其他答疑

    suid和sudo都可以用于提高用户的操作权限,那他们的区别是什么?
              suid:是让所有用户拥有某个权限可以执行某个程序或命令  -->仅仅是一个工具,仅仅在执行过程中生效,所有人都可用
              sudo:是让某个用户获得特定的某个命令或者执行权限      -->身份提高,终身有效,某个用户才有的权利

    希望普通用户[omd]删除某个自己没有权限删除的文件,应该怎么处理?
                a.sudo给omd授权rm权限 

              b.rm设置suid 

              c.修改上级目录的权限【因为上级目录记录着下级目录里文件的权限信息】

    sgid

    setgid(sgid): 希望一个目录被多个用户(同属于一个组)共享,同一个组的用户可以处理

    chmod g+s /home/omd/h    -->添加sgid

    chmod 2755 /home/omd/h    -->添加sgid

    chmod g-s /home/omd/h     -->取消sgid

    粘滞位(t)

    粘滞位(t): 把一个文件夹的权限都打开,然后共享文件,像/tmp一样,但是 生产环境一般不使用

      chmod o+s h.txt              --> 添加粘滞位

      chmod o-s h.txt               --> 取消粘滞位

      chmod 1777 /home/omd   –>添加粘滞位

    查看/tmp文件夹的权限:

    tmp相当于共内容,所有用户可以对这个目录操作,但是不能破坏(t的作用)
    /tmp是经典的粘滞位目录,特点:谁都有写的权限,因此有安全隐患
    [root@localhost omd]# ll -ld /tmp/    -->t表示粘滞位  t表示有个x,没有就是大T
    
    

    image

    特殊权限的小结

    特殊说明:  

    suid 4000: 权限符s(S),用户位上的x位置  chmod 4777 h.txt
    guid 2000: 权限符s(S),用户组位上的x位置  chmod 2777 h.txt
    粘滞位 1000: 权限符t(T),其他用户位上的x位置  chmod 1777 /home/omd
        对应位有x则,字符权限小写,否则表现为大写

    设置方法:

    chmod u+s h.txt   chmod u-s h.txt
    chmod g+s h.txt   chmod g-s h.txt
    chmod o+s h.txt   chmod o-s h.txt
    /tmp是经典的粘滞位目录,需要记住哦

  • 相关阅读:
    力扣 503 :下一个更大元素 II
    力扣 684 :冗余连接
    时间空间复杂度
    并查集
    UE4解决贴花拉伸的简单办法
    《程序员修炼之道Ⅱ》读书简记
    mac中安装支持m1的软件,提示已损坏问题解决
    在idea中构建gradle项目报错Command line is too long
    向上向下取整
    web端开发工具下载地址
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9260157.html
Copyright © 2011-2022 走看看