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これを回避し、変更された属性を持つ実際のバイナリを使用していることを確認できます。

関連情報