文件setuid/setgid标志位
linux文件的权限标志除了大家熟知的读(r)、写(w)、执行(x)外,还有三个比较特殊的权限位:setuid/setgid/sticky bit
setuid只作用于二进制可执行文件(不包含shell/python/perl等脚本),它允许当前用户以文件所有者的权限运行文件。
如系统的passwd命令
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2019 /usr/bin/passwd
这个文件属于root用户,但其它用户有执行权限,那么当一个普通用户test运行passwd时,就暂时拥有了root权限。
setgid用于二进制可执行文件时与setuid类似,但当一个目录的setgid设置时,这个目录中新创建的文件及子目录会继承这个目录的gid,而不是创建者的gid,并且会继承目录的setgid标志。
sticky bit对文件没有影响,只作用于目录。 当一个目录的sticky标志位设置时,那么这个目录中的所有文件只能由其所有者移动或删除。一个典型的例子是/tmp目录,通常
系统中的所有用户都对这个目录有写权限,但设置sticky位使用户不能删除其它用户的文件。
进程的UID/RUID/EUID/SUID
UID: the user ID, 通常是指一个文件的拥有者。
RUID: the real user ID,调用程序的用户。例如:当test用户执行passwd时,那当前进程的RU