• 締切済み

system()でssh命令文の実行結果がappacheで表示できない

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

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

Appacheは通常Nobodyというユーザーで実行されていて、PHPからsystem関数で起動されるコマンドもこのユーザーで実行されます。Appacheは通常HTTPで外部からリクエストされる、つまり誰が実行するのかわからないので安全のためNobodyというユーザーの権限はかなり制限されたものになっています。シェルスクリプトでsshが動き、Appacheでは動かないとなると、そのNobodyユーザーでのsshの実行権限がない、という事が推測されます。 >su nobody と打ってnobodyでそのスクリプトを実行してみて動くかどうか確認してみて下さい。

sartord
質問者

お礼

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

関連するQ&A

  • SSHをsystem関数で。

    SSHログイン先のコマンド結果出力と、SSHログイン先のプロンプトを表示させたいです。 Perlでsystemを使用してSSHログイン先でコマンド実行した結果とプロンプト表示のみ 出力したいのですが、下記ではうまくいきません。。。 system( ssh -q 10.x.x.x ; ls);  *ここでsshはパスワードやユーザーを聞かれないように設定済み。 *"-q"はsshのオプションで、SSHログイン時の出力をしない設定 *ログイン先シェルはcsh (求める出力結果)************** [sshログイン先prompt] ls結果・・・ ls結果・・・ [sshログイン先pprompt] ****************************** 不明確な部分等ありましたらすみません。。。 どうかご教授お願いいたします。

  • system関数の実行結果の表示について

    system関数で、mysql -h host -u user -ppasswd dbname < xxx.sqlを 実行しているのですが、エラーメッセージが取得できずに困っています。 DOSプロンプトから実行した場合は、エラーなどがあるとDOSプロンプトに表示されると思うのですが、その結果を取得したいと思っています。 system関数では、取得できないのでしょうか?または、使い方が間違っているのでしょうか? print( system("mysql -h host -u user -ppasswd dbname < xxx.sql") , $intRet ); 環境:Windows2003+Mysql4.1.9+PHP4+Apache2

    • ベストアンサー
    • PHP
  • 【ActionScript】命令文を再実行する方法で

    FLASH8(Win-XP)使用者です。 命令文を再実行する方法について考えています。 現在、タイムラインに記述したスクリプトを再度実行させたい場合は _root.gotoAndPlay() 等を使い、フレーム間を往復させ、再び同じスクリプトを実行させています。 これでも当然問題はないのですが、さらにスマートな方法もあるのではないか… タイムラインに依存しなくても… フレームが1つでもできないのか… などと模索しております。 そんな方法ご存知の方いらっしゃりましたらよろしくお願いいたします。

  • php上でSQL文を実行した結果と、phpMyAdminで実行した結果が違う

    ☆実行環境 php5.3 MySQL4.0 $sql="SELECT * FROM テーブル名 WHERE フィールド名 like '".$変数."%'" php上で上記のようなSQL文を実行させようとしています。 テーブルには該当する行がいくつかあるのですが、ページ上では1行も表示してくれません。 mysql_num_rowsの返り値を見ると0になっています。 SQL文の組み立てがおかしいのかと思い、phpMyAdmin上でSQL文を実行すると、 きちんと欲しい内容が表示されます。 とするとphpでのSQL文の書き方がおかしいのだと思います。 どこかおかしいのかご教授ください。

    • ベストアンサー
    • PHP
  • fortran結果をブラウザに表示

    phpのsystem関数により、fortranで行列の計算を実行し その結果をphpのブラウザに表示させているんですが、 例えば、計算結果が 12 12 12 12 12 12 12 12 12 のように表示されず、12 12 12 12 12 12 12 12 12 12 のように全て一列で表示されてしまいます。。 コマンドプロンプト(GNOME)で実行したときは、ちゃんと改行され、 きれいに表示されるんですが。 system関数なので仕方ないんでしょうか? 誰か詳しい方がいれば教えていただきたいです。よろしくお願いします。

    • 締切済み
    • PHP
  • 実行結果が表示されません

    今回PHPからCISCOのルータにテルネット経由にてログインしコマンドを実行、実行結果を出力するプログラムを考えています。 一応ログインし、実行しているようですが・・・実行結果が表示されないです。 何かほかに良い方法があればアドバイス等を頂ければと思います。 <?php // Telnet接続 $tel = new Telnet('ホスト名'); if( @!$tel->connect() ) { return 'TELNET_FAIL'; } elseif( @!$tel->login('ユーザー名' , 'パスワード') ) { return 'TELNET_FAIL'; } $tel->setPrompt($host.'#'); $tel->exec("terminal length 0"); $result[0]=exec("show momory statics"); print $result[0]; ?>

    • 締切済み
    • PHP
  • コマンド実行結果内容の検索

    お世話になります。 当方UNIX初心者です。 現在開発のPHPのウェブシステムの内容をUNIXを用いて閲覧しています。 UNIXからPHPの設定を見るのに、php -r 'phpinfo();'コマンドを 使っているのですが、実行結果が大きすぎて目的の文字列 'php.ini'を見つけ出すことができません。 そのため、この実行結果に検索をかけたいのですが。 どなたかご存知のかた、ご教授いただけたら幸いです。 よろしくお願いいたします。

  • 試験の問題文が命令調なのはなぜか?

    試験の過去問題を解いていて思ったのですが、問題文は「~しなさい。」という命令形で書かれています。これはどうしてなのか理由をご存じなら教えて下さい。

  • PHPソースと、実行結果を表示したい。

    お世話になります。 phpのスクリプト自体と、その結果を表示したいのですが、 良い方法が見つかりません。 <?php echo "aaaa".'<br>'; function xyz(){ ・・・・ } ?> などというスクリプト自体を表示し、その実行結果も表示したいのです。 スクリプト自体を表示するとき<pre>タグを使うと <br>などはひょうじされず実際の改行となってしまいます。 何か良い方法はないものでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • よく仮定法や命令形の文にotherwise の前に

    よく仮定法や命令形の文にotherwise の前にセミコロンをみかけるのですが、理由をご存知の方教えていただけると助かります。

専門家に質問してみよう