为什么我不能像 apt 那样 setuid 二进制文件?

为什么我不能像 apt 那样 setuid 二进制文件?

在我接受的所有教育中,我都被告知,它将setuid允许任何对文件具有执行权限的人以所有者的身份运行它。然而,我似乎无法设置二进制文件并以简单用户身份运行它。这是我尝试过的:

root@pc# chmod u+s,o+x /usr/bin/apt
root@pc# su - zero
zero@pc$ apt update
[sudo] password for zero: 
Sorry, user zero is not allowed to execute '/usr/bin/apt update' as root on pc.

默认情况下它就像一个魅力,/usr/bin/passwd但似乎 Linux 不允许我在其他二进制文件上设置它。我究竟做错了什么?

答案1

显示的消息表明可能被别名apt“捕获” 。sudo

使用绝对路径可以避免/usr/bin/apt这种情况,并确保您使用的是修改属性后的实际二进制文件。

相关内容