Ser*_*rgi 7 php ajax bash html5 sudo
我正在尝试执行一个简单Bash Script的PHP脚本.我从HTML5前端页面收集数据,传递ajax给PHP脚本,获取变量,然后将这些变量传递给.sh脚本,但我有以下消息:
./test_bash.sh: line 13: ./test.txt: Permission denied
Run Code Online (Sandbox Code Playgroud)
我试图更改权限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";
?>
Run Code Online (Sandbox Code Playgroud)
其次,Bash代码:
#!/bin/bash
var1=$1;
var2=$2;
var3=$3;
echo "$var1";
echo "$var2";
echo "$var3";
echo $var1 $var2 $var3 > ./test.txt
Run Code Online (Sandbox Code Playgroud)
我相信您还必须更改 txt 文件的权限,以便 apache (实际执行脚本的用户)能够写入它。
但在使用和更改权限时要小心,shell_exec()很容易传递不需要的变量......