dポイントプレゼントキャンペーン実施中!

PHPのsystem()でsshの命令を実行した場合、PHP単体では動作するのですが、Appacheから実行した場合、ssh命令文の実行結果が表示できません
誰か、理由をご存知な方はいらっしゃらないでしょうか

A 回答 (1件)

Appacheは通常Nobodyというユーザーで実行されていて、PHPからsystem関数で起動されるコマンドもこのユーザーで実行されます。

Appacheは通常HTTPで外部からリクエストされる、つまり誰が実行するのかわからないので安全のためNobodyというユーザーの権限はかなり制限されたものになっています。シェルスクリプトでsshが動き、Appacheでは動かないとなると、そのNobodyユーザーでのsshの実行権限がない、という事が推測されます。

>su nobody
と打ってnobodyでそのスクリプトを実行してみて動くかどうか確認してみて下さい。
    • good
    • 0
この回答へのお礼

昨夜、同僚の方がwakame0729が言われたのと同じ方法でこの問題を解決してくれました。
しかし、大変参考になりました。貴重なご意見大変ありがとうございます。
解決の方法は具体的には、SSHの実行ファイル郡にnobodyがアクセス権を持っていなかったために発生していたものでした。
問題を難しくいていた要因としてはデバッグモードでは実行できてしまったことが原因の究明を遅らせたように感じます。

お礼日時:2005/06/23 03:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!