内核的PHP接口';s IP路由表操作不允许

内核的PHP接口';s IP路由表操作不允许,php,shell,unix,exec,routes,Php,Shell,Unix,Exec,Routes,我尝试用PHP执行route add命令,方法如下: exec(“/sbin/route-net 127.0.0.1”,$output)并且我得到了不允许的SIOCADDRT操作。我想这是因为我没有通过sudo执行route命令。 但是我无法从php执行sudo,因为命令要求输入su密码。那么,在没有sudo的情况下如何运行route add呢 谢谢 您可以使用-S参数发送set sudo以从标准输入获取密码 exec("echo 'password' | sudo -u root -S /sb

我尝试用PHP执行route add命令,方法如下:
exec(“/sbin/route-net 127.0.0.1”,$output)并且我得到了不允许的
SIOCADDRT操作
。我想这是因为我没有通过
sudo
执行route命令。 但是我无法从php执行sudo,因为命令要求输入su密码。那么,在没有sudo的情况下如何运行route add呢


谢谢

您可以使用-S参数发送set sudo以从标准输入获取密码

exec("echo 'password' | sudo -u root -S /sbin/route -net 127.0.0.1", $output);

最好的方法是,IMHO,创建一个使用此命令的shell脚本。之后,允许此shell脚本作为root在
/etc/sudoers
中执行

可以在中找到加载项sudoers文件的语法

所以你只需要:

exec("/usr/bin/sudo /path/to/script");
这样,您的根密码就不会公开,您可以在脚本中添加任何您想要的命令