内核的PHP接口';s IP路由表操作不允许
我尝试用PHP执行route add命令,方法如下:内核的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
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");
这样,您的根密码就不会公开,您可以在脚本中添加任何您想要的命令