shell脚本执行php方法,shell-script-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函数来执行的。

回复内容:

1.自己写了一个php脚本,用来通过WEB接口,执行一些shell脚本

2.shell脚本会用到sudo

3.sudo用户已经设置了NOPASSWORD

4.手动在nobody用户环境下,(su -s /bin/bash nobody),再执行shell脚本是可以正常执行的,但是通过php执行,sudo那个语句会不执行

请教如何使用php执行呢?目前是使用shell_exec函数来执行的。

知道原因了,是,sudo: sorry, you must have a tty to run sudo

修改下系统配置就可以了。

这样子相对比较危险啊。。。。首先不论怎么实现。。。

sudo你需要sudo开启PHP进程那么php执行的都是sudo了啊

把www 用户加到root组

2.shell脚本会用到sudo

这句话的意思是,shell脚本的执行需要sudo的权限才行?

看起来这是一个很有危险性的操作啊,慎重慎重。

当然,不执行一般都是权限问题导致的。在webserver环境执行PHP脚本,以nginx为例,一般使用 www用户,你在cli下可以,如果基于你的要求,首先www应该属于root group。

其次,便于调试,你可以尝试在cli

sudo -Hu www php your.php

还有就是,shell_exec 函数会返回一个值,就是shell的输出, err_log() 到文件去看看呗。

php只能执行部分命令,即使用root也一样。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值