我被有关 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)
简短的故事:不要使用 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:条目需要放在最后。