我尝试通过/etc/ppp/chap-secret
将bash script
文件插入php shell_exec
文件。
我希望我在正确的方式或是否有更好的方式? 无论我的工作如何,
/var/www/test.php:
<?php echo shell_exec("cd /etc/ppp; bash test.sh"); ?>
/etc/ppp/test.sh:
#!/bin/bash
sed -i "/IP addresses/a client123* pw123123 192.168.0.101" chap-secrets
我还添加了www-data ALL=NOPASSWD: /etc/ppp/test.sh to sudoers.
我得到了error
:
来自终端的sed:无法打开临时文件./sedXym2Nn:权限被拒绝
一切正常,但我需要通过管理员网页点击按钮。
如何修复权限错误并获取此过程?
答案 0 :(得分:0)
授予Web服务器对系统文件的访问权限肯定是鲁莽的,但至少您使用包装器脚本来阻止服务器以超级用户权限运行任意命令。话虽如此:
您没有密码就已www-data
sudo访问/etc/ppp/test.sh
,但您没有使用shell_exec
函数中的sudo执行命令。
调用shell_exec("cd /etc/ppp;
sudo bash test.sh");
应该可以解决问题。