正确使用 setuid

Ste*_*ven 5 osx setuid

我被有关 setuid 的警告吓坏了。但是我找不到使用它的方法。

我希望能够运行: arp -s 198.51.100.1 00:53:00:12:34:56 作为用户steven但 arp -s 需要 root。

这是正确的方法吗?

sudo nano example.sh
sudo chmod u+s example.sh
sudo chmod og-w example.sh
sudo chmod o+x example.sh
./example.sh
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 4

简短的故事:不要使用 setuid shell 脚本(或任何setuid/setgid 脚本)。

长话短说:在 shell 脚本上允许 setuid

解决方案:使用 调用该命令sudo

sudo arp -s 198.51.100.1 00:53:00:12:34:56
Run Code Online (Sandbox Code Playgroud)

要允许用户steven在不输入密码的情况下运行此命令,请运行visudo并添加以下行:

steven ALL = (root) NOPASSWD: arp -s 198.51.100.1 00\:53\:00\:12\:34\:56
Run Code Online (Sandbox Code Playgroud)

如果您还有其他 sudo 条目steven则这些NOPASSWD:条目需要放在最后