【发布时间】:2016-02-18 16:23:48
【问题描述】:
我正在尝试从PHP 脚本执行一个简单的Bash Script。我从HTML5 前端页面收集数据,将ajax 传递给PHP 脚本,获取变量,然后将它们传递给.sh 脚本,但我收到如下消息:
./test_bash.sh: line 13: ./test.txt: Permission denied
我尝试更改权限chmod 777 test_bash.sh,尝试修改sudoers.d 文件,尝试此操作:shell_exec("echo password_for_the_user | sudo -S command_to_execute"); ...但Bash script 无法写入test.txt 文件。
这是我的基本代码,首先是PHP code:
<?php
$var1 = json_decode($_POST['var1']); //from front-end html5
$var2 = json_decode($_POST['var2']);
$var3 = json_decode($_POST['var3']);
$response = shell_exec("./test_bash.sh $var1 $var2 $var3 2>&1");
echo "$response";
?>
其次,Bash 代码:
#!/bin/bash
var1=$1;
var2=$2;
var3=$3;
echo "$var1";
echo "$var2";
echo "$var3";
echo $var1 $var2 $var3 > ./test.txt
【问题讨论】:
-
你说
echo $var1 $var2 $var3 > /tmp/test.txt有效吗?看起来您无法在test.txt所在的目录中写入。 -
是的,现在可以了。谢谢!