我对 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
答案1
简短的故事:不要使用 setuid shell 脚本(或任何setuid/setgid 脚本)。
很长的故事:允许在 shell 脚本上设置 setuid
解决方案:使用 调用该命令sudo
。
sudo arp -s 198.51.100.1 00:53:00:12:34:56
要允许用户steven
在不输入密码的情况下运行此命令,请运行visudo
并添加以下行:
steven ALL = (root) NOPASSWD: arp -s 198.51.100.1 00\:53\:00\:12\:34\:56
如果您有其他 sudo 条目steven
,需要NOPASSWD:
放在最后的。