Linux特殊权限设置以及使用

 
 

Linux文件权限特殊权限(s-s-t)

  • 什么是suid权限

    SUID是可执行文件的特殊文件权限,使其他用户能够以文件所有者的有效权限运行文件。 代替执行权限的正常x代替用户的s(指示SUID )特权。
     

  • 有什么实际的价值

     
    比如对于/etc/shadow这个文件是只有root用户可以执行的,但是如果一般的用户修改密码的话怎么办?因为你不能将修改后的密码hash写入/etc/shadow,我们看看这个文件的权限。

     

     
    显然只有root用户才能够写入,那么一般用户用的passwd这个修改用户的命令是怎么来修改密码的呢?
     
    我们看一下/usr/bin/passwd这个命令的权限
     

     
    显然在文件所有者的x权限的位置上被s给占据了,那么其他的用户执行号文件的时候就是以该文件所有者的权限(也就是roor),那么我们能够修改/etc/shadow这个文件的内容也就可以解释了.

  • 如何设置取消suid权限

     
    chmod u+s file
     
    chmod u-s file

  • 其他用户能够执行的条件

     
    其他用户必须有可执行的权限x才可以执行该文件,如果没有的话,会看到s权限会被大写(代表无效).

     

  • 有什么潜在的危险

     
    对于系统默认的具有suid的文件一般是没有可以利用的点的,但是其他的一些自带的命令是有的,下面举出几个例子。

     
    find命令
     

    find命令可以执行命令,那么假设有suid权限的话,那么我们可以达到一种"提权的目的"。
    touch test
    find test -exec whoami ;

     
    我这里面是用的root用户,如果是suid的话是一样的道理
     
    综上,对于suid权限还是少用的好.
     

  • 从攻击者的角度出发

    假设攻击者拿到了一个shell准备去提权,那么我们利用suid提权,第一步做的就是先找到有suid权限的文件进行分析.

     
    使用find命令进行查询
     
    find / -user root -perm /4000 2>/dev/null
     
    上述命令就是从根目录下查找有具有rootsuid权限的文件
     
    -perm是寻找文件权限的参数

    查找一般权限
    -perm  777   //查找具有普通777权限的文件
    查找特殊权限
    -perm /4000 //查找具有suid权限的文件
    一般权限
    r w x
    4 2 1
    特殊权限
    s(suid) s(sgid) t(sbit)
    4000 2000 1000
    是不是很相像呢?

     
    这里面再举一个例子chmod 4777 xxx就是设置suid与平常的777权限。
     
    当然除了suid还有sgid以及sbit权限,这里不再赘述。
     

    Linux文件权限之i、a权限

 
i权限:不可修改权限
 
设置方式: chattr +i xxx那么该用户就不可修改,无论任何人,如果需要修改,使用chattr -i xxx就可以了
 
只有root才可以修改

原文地址:https://www.cnblogs.com/Mikasa-Ackerman/p/Linux-te-shu-quan-xian-she-zhi-yi-ji-shi-yong.html