PHP Webプログラムはシェルスクリプトを実行しますか?

PHP Webプログラムはシェルスクリプトを実行しますか?

ユーザーにいくつかのパラメータを入力するように求められたら、これらのパラメータを使用してバッチシェルスクリプトを実行する必要があるPHPプログラムがあります。次の関数を使用してこれを実装しました。

$cmd =  "echo \"podcast -c $TCname\" | at $_stimehr:$_stimemn $_sdate";

exec("$cmd", $_RetVal);

これはキューに追加され、さらに実行されます。しかし、克服できないような権限の問題があると思います。

私のapache2はwww-dataユーザーとして実行されており、誰もがシェルスクリプトを実行できることを確認しました。それでも起動し、エラーメッセージなしで失敗し、wazooにログインします!エラーはありません。ディレクトリを変更しようとすると停止するようです。

答え1

このような問題が発生するたびに入れておきましたwww-data。テストが完了したら、元の状態/etc/passwdに戻すことができます。nologin

その後、su - www-data手動でスクリプトを実行してみました。権限に関する問題がある場合は、範囲を絞り込むのに役立ちます。 PHPでシェルスクリプトを実行すると、予期しない結果が発生することがあります。

関連情報