php执行shell脚本的问题
1.自己写了一个php脚本,用来通过WEB接口,执行一些shell脚本
2.shell脚本会用到sudo
3.sudo用户已经设置了NOPASSWORD
4.手动在nobody用户环境下,(su -s /bin/bash nobody),再执行shell脚本是可以正常执行的,但是通过php执行,sudo那个语句会不执行
请教如何使用php执行呢?目前是使用shell_exec函数来执行的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
知道原因了,是,sudo: sorry, you must have a tty to run sudo
修改下系统配置就可以了。
这样子相对比较危险啊。。。。首先不论怎么实现。。。
sudo你需要sudo开启PHP进程那么php执行的都是sudo了啊
把www 用户加到root组
这句话的意思是,shell脚本的执行需要sudo的权限才行?
看起来这是一个很有危险性的操作啊,慎重慎重。
当然,不执行一般都是权限问题导致的。在webserver环境执行PHP脚本,以nginx为例,一般使用 www用户,你在cli下可以,如果基于你的要求,首先www应该属于
root group
。其次,便于调试,你可以尝试在cli
还有就是,
shell_exec
函数会返回一个值,就是shell的输出,err_log()
到文件去看看呗。php只能执行部分命令,即使用root也一样。