目录
1.SetUID
1)功能介绍:
- 只有可以执行的二进制程序才能设定SUID权限
- 命令执行者要对该程序拥有执行权限 x
- 命令执行者启动该程序时获得该程序属主身份
- SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行中有效
举例思考:为什么普通用户可以修改自己的密码?
[root@Beiqi ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1495 7月 7 18:20 /etc/passwd
[root@Beiqi ~]# ll /etc/shadow
---------- 1 root root 1082 7月 7 18:20 /etc/shadow
[root@Beiqi ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 27856 4月 1 11:57 /usr/bin/passwd
可以看出 /usr/bin/passwd 命令拥有 权限SetUID,即文件属性第四位为 s 。
可以理解为 拥有执行权限的用户执行此命令时使用文件的属主执行此命令。
普通用户可以修改密码具体流程是:当普通用户使用passwd更改自己密码时,/usr/bin/passwd的属主为root,以root身份执行passwd命令,那么也可以将密码写入/etc/shadow文件中,执行完此命令root身份消失。如果取消 /usr/bin/passwd的s权限,普通用户也不可以修改自己密码。
既然 特殊权限 s 可以借尸还魂 ,使用root的权利 ,那么系统中原本具有 s 权限的文件要注意,还有自己给与权限时也要好好考虑。