• 締切済み

Suexecについて

いつもお世話になります。 FreeBSD 4.7-RELEASE-p28とApache/1.3.33でWEBサーバー(レンタル)を構築しております。現在サーバー移行をしており旧環境から既存cgiの動作テストをしております。 exec cmdでコールしたcgiが動作しないため困っております。 例えばroot--cgi | ---test(index.shtml)というディレクトリ構造だとします。 /root/test/index.shtmlファイルから上位層のcgiにあるcgiファイルを <!--#exec cmd="../cgi/test.cgi">でコールするとcgiが反応しません。 色々調べたところSuexec の環境なので ".." を使用した相対パスが原因でエラーになっているという情報を見つけたのですが、このような状況を確認する方法、Suexec環境を 解除するにはどうしたらよいのでしょうか? どなたかご教示願います。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

Apacheの設定がIncludesNoExecになっているかもしれませんよ

cardy55
質問者

補足

php504様ご回答ありがとうございます。IncludesNoExecの解除方法を知りたいと思っております。何卒ご教示願います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

いまいちsuexecのせいかどうかも怪しい 気がしますが。 そもそもcgiの実行フォルダが正しいか どうか確認し、相対位置ではなく htdocのルートからの絶対位置で指定して みてはいかがでしょうか? (普通は/cgi-bin/test.cgiですよね?)

cardy55
質問者

お礼

yambejp様回答が遅くなり申し訳ありません。私の環境では/cgi-bin/にCGIをおいておらず、ドキュメントルートにHTMLを配置するフォルダがあり、その中にcgiというフォルダを配置しております。(root---cgi)という感じです。suexecでは"/"から始まる指定もできないようです。suexec_logにincvalid commandと表示されました。 手詰まりになってまいりました。

関連するQ&A

  • shtmlより参照できないディレクトリ

    いつもお世話になります。 下記のようなディレクトリ構成でshtmlよりperlのcgiプログラムをコールしております。(cgiは全てcgiディレクトリの中に格納) shtml上から上位ディレクトリからcgiディレクトリを参照できるのですが、下位ディレクトリからshtmlより参照することができません。 ※現状ではcgiを下位ディレクトリにshtmlと一緒に配置してしのいでおります。 ※cgi本体からは../cgiの中を参照できております。 root--- | ---cgi--dbfile | | | ---topic | | | ---img 中略 | par この場合rootにあるindex.shtmlよりcgiディレクトリにあるtest.cgiをexec cmdでコールする場合 「<!--exec cmd="./cgi/test.cgi"-->」コール可能です。 ところがparにあるindex.shtmlよりcgiディレクトリにtest.cgiをコールする場合「<!--exec cmd="../cgi/test.cgi"」とするとcgiをコールできません。 記述方法は間違いがないと思いますが、上位ディレクトリからはcgiディレクトリを参照できて、下位ディレクトリからcgiフォルダを参照できないのはなぜでしょうか? ※この例でいくとparフォルダにtest.cgiを配置しshtmlより<!--exec cmd="test.cgi"-->とすると コールできます。test.cgi本体からは../cgi/~のような記述でcgiフォルダを参照できております。 パスなど環境設定でしょうか? 大変恐縮ですが、どなたかご教示願います。

    • ベストアンサー
    • Perl
  • PHPでsuEXEC

    test.cgiをPHP言語で記述し、suEXECを使っているつもりなんですが、確認のためにfopen()で作成されたファイルの所有者を見たらapacheになっていました。 現在インストールされているPHPがCGIとしての動作に対応できているかを確認する方法はないですか? PerlならsuEXECが適用されています。 何をどう設定すればsuEXECとつながってくれるでしょうか? apacheとsuexecのログでは手がかりになる情報は得られませんでした。

    • 締切済み
    • CGI
  • 500エラーorダウンロードになる。suEXEC

    【環境】 fedora7(さくら専用サーバー Apache(2.2.8) vsftpd(2.0.5-16.fc7) suEXEC cgiを700で動かしたいのですが、 全く動いてくれません。。。 500 Internal Server Error エラーログを一部抜粋しました。 error.log [Sat May 24 17:08:07 2008] [error] [client 121.1.216.98] attempt to invoke directory as script: /home/test1/cgi-bin/test/ [Sat May 24 17:08:07 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] Directory index forbidden by Options directive: /home/test1/httpdocs/file/00/, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] mod_mime_magic: can't read `/home/test1/cgi-bin/test/log_note.cgi', referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] (13)Permission denied: exec of '/home/test1/cgi-bin/test/log_note.cgi' failed, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] Premature end of script headers: log_note.cgi, referer: http://ドメイン/ [Sat May 24 17:08:11 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] mod_mime_magic: can't read `/home/test1/cgi-bin/test/test.cgi', referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] (13)Permission denied: exec of '/home/test1/cgi-bin/test/test.cgi' failed, referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] Premature end of script headers: test.cgi, referer: http://ドメイン/ [Sat May 24 17:08:13 2008] [error] [client 121.1.216.98] File does not exist: /home/test1/httpdocs/favicon.ico suexec.log [2008-05-24 16:58:20]: too few arguments suexec -V の結果 -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX="public_html" DOC_ROOTの変更方法も分からず、ずっとhomeでやってたので、 ミスだったのかな?と思い。 /var/以下にcgiを置いてchmodでtest.cgiの権限700にしてしてみましたが、500のエラーでした。 なぜかFFFTPのクライアントからは操作ファイル操作が出来ませんでした。 ユーザー名はapacheグループに属してるだけです。 バーチャルで運営の予定です。 perlのパスは usr/bin/perl test.cgiの先頭は #!/usr/bin/perl です。 suEXECは・・・ chmod 4711 /usr/sbin/suexec でapache再起動後のログに、 [Sat May 24 17:31:04 2008] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) が出ます。 /usr/sbin/httpd -l でチェックすると。 core.c prefork.c http_core.c mod_so.c の4点しかありません。 suexec: disabled; invalid wrapper /usr/sbin/suexec は出ません。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • ローカルサーバーでの動作確認

    CGI超初心者です. 翔泳社のPERL/CGI辞典を見ながらCGIに挑戦してます. 今ローカルサーバーでの動作確認すべく奮闘しているのですがCGI/SSIを使用するためのAPACHEの設定で頭を悩ませてます. CGIはうまく表示できたのですがどうしてもSSIが表示されないのです. ファイルは本通りに記述したつもりです. 「test.shtml」 <HTML> <BODY> <!--#exec cmd="test.pl" --> </BODY> </HTML> 「test.pl」 #!C:\perl\bin\perl print"hello!"; CGI/SSIはドキュメントルートで制限なく使用できるよう設定しました. test.shtmlは表示されてるようなんですがそこにtest.plが読み込めてないようです(よく分かりませんが…) どこが悪いのか全く分かりません. ブラウザ上でこのtest.shtmlのソースを確認したら<!--#exec cmd="test.pl" -->の部分が表示されてませんでした. 全くの初心者でどのような情報を開示すればよいのか分からないので必要な情報があれば教えていただけるとありがたいです.

    • ベストアンサー
    • CGI
  • Apache 2.0 で SSI cmdが動かない

    同じ質問で http://okwave.jp/qa/q451501.html これと同じですが、未だ解決していないようなので。先に上記を見て下さい。 SSI の機能は ファイルアクセス表示などのコマンドが実行できているので、動作しています。 <!--#exec cmd="test.cgi" --> でエラーログが下記です。 execution failure for parameter "cmd" to tag exec in file.......shtml cmdの実効に失敗した。 test.cgi はDOSのbat で動作、及びHTMLのhead等のタグをプリントで入れれば 正常動作しています。 先人の質問でやり取りは一通りやっています。LoadModule等も #exec cmd がどうしても機能しないと思えますが 宜しく御願いします。

    • 締切済み
    • CGI
  • CGI (suEXEC)について!

    CGI (suEXEC)についての質問です! OS: Red Hat Linux 7.3 httpd: Apache 1.3.28 Apacheの設定ファイル httpd.conf 内で設定してある DocumentRoot のディレクトリ内にある CGIを”パーミッション700の場合にのみ”動作するようにする方法はありますでしょうか? suEXECを使用してユーザディレクトリ内のCGIは700で動くようにできたのですが、 httpd.conf 内で設定してある DocumentRoot のディレクトリ内では700だと動かない為。 また、suEXECというものは、ユーザーディレクトリのみに適応されるものなのでしょうか? ご存知の方いらっしゃいましたら、アドバイス等を宜しくお願いします。

  • suEXECとパーミッションの関係がわかりません

    ホームページ作成初心者です。 (A) suEXECについて http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm では、 ----------------------- なお、CGI 関係以外のファイル( HTML や GIF 等)の扱いは、従来どおり "644" 等としないと見えません。suEXEC はあくまで CGI や SSI の実行に関してのみ機能するものだからです。 ----------------------- 一方 http://tech.bayashi.net/pdmemo/permission.html では、 ----------------------- 拡張子が .html などの HTML ファイル ==> 600 ----------------------- となっています。 600では一般のサイト訪問者がread出来ない様に思えるのですが、問題ないのでしょうか? suEXEC設定がされているサーバーでは、各拡張子のパーミッションはどのように設定すれば良いのか教えてください。 (B) http://tech.bayashi.net/pdmemo/permission.html の ------------------------------- ■UNIX + Apache サーバで nobody権限の場合 UNIXのApacheは通常 nobody権限で実行され ■UNIX + Apache サーバで SuExec環境の場合 SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。 ------------------------------- 上記のApacheの nobody権限、ユーザ権限、オーナ権限 というのは FTPソフトでパーミッションを設定するときの オーナー権限、グループ権限、ユーザ権限 とは全く関係のない別物なのでしょうか? 特にnobody権限とは何でしょうか? -------------------- ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です -------------------- ↑が何を言っているのか理解できません。 (A)(B)について教えてください。

    • ベストアンサー
    • HTML
  • SSIで新着情報を出すために

    http://www.daikoku-ya.org/BLOG/2006/01/10_2040.php コレを使って、TOPページに新着情報を出したいと思っています。 読み込ませるブログは4つあります。 自分はCGIでメールフォームを設置できる程度の初心者です。 SSIは初めて使います。 サーバの状況は下記のとおりです。 1.SSIを使うと、拡張子が.shtmlになること 2.SSIの利用にはSUEXECが導入されていること 質問ですが、 1.このSSIを呼び出すソースの説明として、 ※exec による SSI の実行が可能なページでの使用が前提となります って書いてあります。SUEXECだと使えるんでしょうか。 また、使えても何かcgiファイルに書いてある内容を直さないといけませんか。 2.テストするときは、テストページをアップしてするしかないでしょうか。 初めてなので、不安でございます(泣) 色々と書きましたが、ご指導お願いします。

    • ベストアンサー
    • CGI
  • shtmlに埋め込むCGIファイルのDLについて

    shtmlファイル内に埋め込んだ<!--"exec cmd="./***.cgi"-->なんですが、 正常に実行されれば、この場所には実行結果しか返りませんが、 DLツールやその他行為で、SHTMLファイルをSSIの実行なしに落とすことはできりでしょうか? 要は、shtml内に埋め込んだ「***.cgi」などのファイル名を取得されないか、 という不安があるのです。

    • ベストアンサー
    • CGI
  • セキュリティの為のSUEXECについて

    ロリポップでSSIを使おうと思ったら次のような注釈がありました。 ------------------------------- セキュリティの為にSUEXECを導入しておりますので、SSIで実行ファイルを使用される際、以下の様な制限があります。 ・実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ・上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。 ------------------------------- このSUEXECというのもがよく分かりませんが、 「実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ない」というのは分かりますが、 「実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますよう」ということがわかりません。 相対パスで指定するのですから、そんな必要があるのでしょうか? そういうルールですから仕方ないことですが、今考えているSSIの利用だと、実行ファイルを上の階層に置くと楽なので、そのあたり疑問に思ったので質問させていただきました。 よろしくお願い致します。

    • ベストアンサー
    • CGI