[英]Permission error by execute bash script via php shell_exec
我尝试通过bash script
将行插入到/etc/ppp/chap-secret
文件中,应该运行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.
添加了www-data ALL=NOPASSWD: /etc/ppp/test.sh to sudoers.
我收到此error
:
sed:无法打开临时文件./sedXym2Nn:权限被拒绝
从终端一切正常,但我需要从管理员网站点击按钮。
如何修复权限错误并获取此过程?
授予Web服务器对系统文件的访问权限肯定是鲁莽的,但至少您使用包装器脚本来阻止服务器以超级用户权限运行任意命令。 话虽如此:
您没有密码就给/etc/ppp/test.sh
提供了www-data
sudo访问权限,但是您没有使用shell_exec
函数中的sudo执行命令。
调用shell_exec("cd /etc/ppp;
sudo bash test.sh");
应该做的伎俩。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.