単純なBash Script
fromPHP
スクリプトを実行しようとしています。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
apache(実際にスクリプトを実行しているユーザー)が書き込みできるようにするには、txtファイルのアクセス許可も変更する必要があると思います。
ただし、shell_exec()
パーミッションを使用および変更するときは、不要な変数を渡すのは非常に簡単です...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加