setUID
普通用户,能够以root身份去执行某些命令,且不需要输入root密码。例如 普通用户想修改自己的密码
当使用 passwd 用户名 这个命令的时候,普通用户就会获得passwd属主的身份即root,然后修改密码,修改密码实质上是修改/etc/shadow 里的内容。 只在程序执行过程中,setUID权限有效。
条件:1.只有二进制程序才能设置SUID 就是那些执行命令文件
2.命令执行者要对该程序有x权限
如何知道某个二进制文件是不是有setUID权限
查看 ll /etc/passwd 它的权限会是 -rwsxr-x--- 这个s 就代表它设置了 setUID权限。如果是大写S,说明有错误,一般是执行者没有x权限导致。
怎么设置setUID权限? 直接 chmod 4750 第一个数字就代表是设置setUID权限 也可以 chmod u+s 这样的命令去增加
在使用setUID命令的时候要格外小心,如果你不小心给vim设置了setUID权限,那么普通用户可以用vim /etc/shadow 去修改,这样可以把自己设置成超级用户。。。非常危险
一般要定期扫描所有的setUID权限文件,与自己默认的setUID权限对比,不是默认的应该立马改回来。