• 深入理解linux的权限设置和SUID,SGID以及粘滞位


    我们知道文件的权限可以用三个八进制数字表示。其实文件的权限应该用四个八进制来表示,不过用 ls -l 命令时,只显示三个罢了。那个没有显示的八进制数字其实是第一个,它用来设定一些特殊权限。这个八进制数字的三个位是SUID SGID sticky-bit

     

    SUID

    当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有超级用户的特权了。这时该位将变成一个安全漏洞,因此不要轻易设置该位。

    SGID

    与上面的内容类似。文件运行时,运行者将具有所属组的特权。

    sticky-bit

    sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。因此设置该位,不如把程序写好。

    set uid ;set gid;sticky bit区别

    每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.

    setuid: 在执行时具有文件所有者的权限.当一个具有执行权限的文件设置SetUID权限后,用户执行这个文件时将以文件所有者的身份执行

    setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.
    sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。


    如何设置:

    操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
    1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
    chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
    chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

    2) 采用八进制方式. 这一组八进制数字三位的意义如下,
    abc
    a - setuid位, 如果该位为1, 则表示设置setuid
    b - setgid位, 如果该位为1, 则表示设置setgid
    c - sticky位, 如果该位为1, 则表示设置sticky

    设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
    如:

    rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
    rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
    rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)

     

     

     

    权限之粘着位

    Linux中有一个存放临时文件的目录/tmp(类似于Windows中的temp目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,A在/tmp目录下创建了一个文件,B看着不爽就可以删掉,这如何控制?

    其实,这种情况永远都不会发生,因为/tmp目录有一个特殊的权限标记:

    ls -ld /tmp

    drwxrwxrwt 5 root root 4096 May 24 13:55 /tmp

    瞧见那个rwx权限最后的“t”了没,那个神奇的“t”就是粘着位t(有的资料中文也称为粘滞位),是Linux特殊权限中的第三个(另外两个是SetUID和SetGID),定义为:权限为777的目录设置粘着位t以后,具有写权限每个用户都可以在目录下创建文件,不同的是每个用户只能删除自己是所有者的文件,也就是说只能删除自己创建的文件。

    读者可以做一下试验,重复一下《草根》第二期“从ls命令开始”中的案例一操作(给目录/test授予777权限用一个普通用户登录删除另一个普通用户创建的文件),不过这次创建的目录/test多授予它一个粘着位权限:

    chmod o+t /test   # 或 chmod 1777 /test

    此时普通用户尝试删除其他用户的文件时,会给出提示“Operation not permitted”

  • 相关阅读:
    木马后门入侵与RKHunter,ClamAV检测工具
    Jenkins环境搭建
    Mha-Atlas-MySQL高可用
    JAVA企业级应用服务器之TOMCAT实战
    Keepalived高可用集群
    scp ssh-key连接原理
    jumpserver跳板机搭建
    DNS域名解析服务器
    DHCP服务
    Keepalived高可用集群
  • 原文地址:https://www.cnblogs.com/dubaokun/p/3451730.html
Copyright © 2020-2023  润新知