博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php - 执行Linux命令没有报错但也没有输出
阅读量:6236 次
发布时间:2019-06-22

本文共 692 字,大约阅读时间需要 2 分钟。

今天我需要在同事访问我的PHP页面的时候执行一段python脚本,于是我的代码是这样写的:

1 
makeLog('ok run workjob'); 4 if($this->is_internal()){ 5 $cmd = '/usr/bin/python /data/script/abc/run.py'; 6 $out = system($cmd); 7 echo 'run'; 8 echo $out; 9 }else{10 echo 'hehe';11 }12 }

但是实际运行效果除了run 什么都没有。我猜想是用户没有权限,于是相关的目录+x,但是还是不行。接着尝试命令如下:

su -c "/usr/bin/python /data/script/abc/run.py" www

命令行中也无任何输出。因此我怀疑是php解析器所在的用户的问题,接着执行如下命令:

cat /etc/passwd

得到如下效果:

www:x:30:8:WWW daemon apache:/var/lib/www:/bin/false

大家可以看到最后是/bin/false,也就是说www用户是没有shell的,因此也就执行不了命令,那么接下来就是给它shell环境,执行如下命令:

usermod -s /bin/bash www

这样之后一切正常了。最后说一句php中还是最好不要调用系统命令。。。

转载地址:http://hazia.baihongyu.com/

你可能感兴趣的文章
javascript之Style物
查看>>
C# 公历转农历
查看>>
LeetCode - Divide Two Integers
查看>>
去掉 “当前安全设置会使计算机有风险”提示
查看>>
sql 聚合函数
查看>>
ABP源码分析二十:ApplicationService
查看>>
学习OpenCV——BOW特征提取函数(特征点篇)
查看>>
帮你店铺日销千单的20个淘宝小技巧
查看>>
python deep copy and shallow copy
查看>>
I.MX6 Ethernet MAC (ENET) MAC Address hacking
查看>>
下载本 WebEnh博客 安卓APP
查看>>
iOS中常见 Crash 及解决方案
查看>>
【python】datetime获取日期,前一天日期
查看>>
Lua简易入门教程
查看>>
如果使用百度云盘同步电脑里文件夹
查看>>
linux内核栈与用户栈【转】
查看>>
一次完整的http事务
查看>>
spring事务传播机制
查看>>
freemaker
查看>>
一个leetcode解题报告类目,代码很简洁
查看>>