我在 Ubuntu 20.04 上并尝试以 root 身份运行命令,但没有使用 sudo 而是使用粘滞位。
我已阅读过这个答案,但似乎无法让它发挥作用。
我创建了一个名为的脚本,whoami_root
用于向用户显示它正在运行。
输出cat whoami_root
:
#!/bin/bash
whoami
我已经跑sudo chown root whoami_root
了sudo chmod u+s whoami_root
输出ll whoami_root
:
-rwsr-xr-x 1 root root 20 Nov 6 23:33 whoami_root
输出./whoami_root
myuser
为什么它似乎忽略了 suid 位并以 myuser 而不是 root 身份运行?
对于诸如 shell 脚本之类的解释程序,setuid 位会被忽略。
请参阅https://unix.stackexchange.com/a/2910/330217
如果
whoami
是二进制可执行文件,则可以创建该程序的副本并设置setuid
位。您可以配置
sudo
为允许运行特定命令而不root
要求输入密码。