什么是SUID
SUID (Set UID)是Linux中的一种特殊权限,其功能是用户在运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件。
在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls
,其属主为root,当我们通过非root用户登录时,如果ls
设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限.,利用此特性,我们可通过SUID进行提权。
怎么设置SUID
可以先查看可执行文件是否有suid权限
ls -alh 文件名
设置suid权限:chmod u+s 可执行文件
取消suid权限:chmod u-s 可执行文件
现在已知的具有suid权限的可执行的二进制文件有以下这些