CGI (suEXEC)についての質問

このQ&Aのポイント
  • CGI (suEXEC)についての質問です!OS: Red Hat Linux 7.3, httpd: Apache 1.3.28
  • DocumentRootのディレクトリ内にあるCGIを”パーミッション700の場合にのみ”動作する方法はありますか?
  • suEXECを使用してユーザディレクトリ内のCGIは700で動くようにできたが、DocumentRootのディレクトリ内では700だと動かない。また、suEXECはユーザーディレクトリのみに適応されるのか?
回答を見る
  • ベストアンサー

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というものは、ユーザーディレクトリのみに適応されるものなのでしょうか? ご存知の方いらっしゃいましたら、アドバイス等を宜しくお願いします。

noname#191236
noname#191236

質問者が選んだベストアンサー

  • ベストアンサー
  • systemv
  • ベストアンサー率66% (2/3)
回答No.1

Red Hat Linux 7.3 で Apache 1.3.28 とのことですが、それはソースからインストールされたということでしょうか? それなら、configure時に、 --suexec-docroot --suexec-uidmin --suexec-gidmin などのsuexec絡みのオプションをつけましたよね? suexecがどのディレクトリ、どのユーザ、どのグループなら適用になるかはそれらによって決まります。 ユーザディレクトリのみに適用といったことはないので、設定ファイルなどであとで変更することはできません。 上記オプションを確認してみてください。

noname#191236
質問者

補足

早速アドバイスを頂きどうもありがとうございます。 --htdocsdir=/usr/local/apache/www --server-uid=apache --enable-suexec --suexec-caller=apache --suexec-docroot=/usr/local/apache/www configureのオプションは上記の通りにしました。 (uid・gidはデフォルトで100との事なので指定なし。  一応、両方共100として試してもみました。) これ以外にも色々と試してみたのですが、 やはり755でないとCGIが動きませんでした。 httpd.confとsuEXEC組み込み時のオプションは、 User/Groupe/DocumentRoot等は合っています。 Linuxを習い始めてまだ日が浅く一応自分なりにWebなどで いろいろ調べてはいるのですが原因が分かりません。 他に何か関係ありそうな項目等がありましたら教えてください。 度々お手数をお掛けしますが宜しくお願いします。m(_ _)m

関連するQ&A

  • CGIの設定

    いつもお世話になっております。 各バーチャルドメイン内でCGIを動作させるためにApacheの設定を したのですが、「ページが表示されません」と出てしまいます。 (バーチャルドメインの設定も完了していて、HTMLファイル、PHPファイルは正常に動作しています。) よろしくご教示お願いいたします。 /etc/httpd/conf/httpd.conf -------------------------------------------------- ScriptAliasMatch /~(..*)/cgi-bin/(.*) /home/$1/cgi-bin/$2 <Directory "/home/*/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory> (1) ↓にファイルをアップロード   パーミッションは「755」に設定してあります。   /home/ユーザ名/cgi-bin/count.cgi (2) ブラウザから↓のURLでアクセス   http://バーチャルドメイン/cgi-bin/count.cgi <環境> Red Hat Enterprise Linux 5 Apache:2.2.3

  • 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
  • CGI

    MacOS10.10のApache2でCGIが動きません。 httpd.confの最後にこう記述してます。 <VirtualHost *:80> DocumentRoot "/Users/ユーザー/Sites/www" ServerName ドメイン <Directory /Users/ユーザー/Sites/www> AllowOverride All Options Indexes MultiViews ExecCGI FollowSymLinks AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .pl .cgi DirectoryIndex index.html index.htm index.cgi </Directory> </VirtualHost> 記述は合ってると思うんですが……どこが間違ってるのでしょう?

    • ベストアンサー
    • Mac
  • apache でバイナリのCGIを動かすには

    apache でバイナリのCGIを動かすにはどうすればよいのでしょうか? (なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します) OS:WIN98 C++バイナリのCGIを呼び出すと下記エラーとなります。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please .... the error. More ... log. - Apache/1.3.12 Server at http://127.0.0.2/ Port 80 最終アクセスログ 127.0.0.1 - - [12/Mar/2001:23:20:27 +0900] "GET /ab.cgi HTTP/1.1" 500 610 最終エラーログ [Mon Mar 12 23:20:25 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/www.homepage/kokucho81/ab.cgi apache の httpd.conf と httpd.conf.default との比較 ** httpd.conf ServerName http://127.0.0.2/ ** httpd.conf.default #ServerName new.host.name ** httpd.conf DocumentRoot "E:/WWW.HOMEPAGE/KOKUCHO81" ** httpd.conf.default DocumentRoot "C:/Apache/htdocs" ** httpd.conf <Directory /> Options FollowSymLinks ExecCGI AllowOverride None ** httpd.conf.default <Directory /> Options FollowSymLinks AllowOverride None ** httpd.conf <Directory "E:/WWW.HOMEPAGE/KOKUCHO81"> ** httpd.conf.default <Directory "C:/Apache/htdocs"> ** httpd.conf Options Indexes FollowSymLinks ExecCGI ** httpd.conf.default Options Indexes FollowSymLinks MultiViews ** httpd.conf AddHandler cgi-script .cgi ** httpd.conf.default #AddHandler cgi-script .cgi そもそも、設定が足りてないんでしょうか? apacheを良く使う方、よろしくお願いします。m(_ _)m

  • LinuxのapacheでCGIが動かない

    RedHatLinux7でイントラネットでWebサーバーを構築しました(apache)で、CGIを動かしたいのですが、動きません。あるサイトで「httpd.conf の AddHandler cgi-script .cgiを生かせばいい」となっていたのでそうしましたが、まだ動きません。あと何を設定すれば良いのですか?(CGIのパーミッションはちゃんとしています。)httpd.confにCGIの記述が他にもありましたが意味がわからずそのままにしています。

  • Apache+SuexecでForbidden

    Apache 2.4.18 + PHP 5.6.18 で Suexec VirtualHost & Suexecを用いて、PHPの実行権を 各VirtualHostで異なるようにしたいのですが gdtest.php を /usr/local/apache2/htdocs に置いて http://172.16.72.152/gdtest.php では正常動作しますが gdtest.php を /home/user1/public_html に置いて http://dummy-host1.XXXXXXX.jp/gdtest.php では Forbidden You don't have permission to access /php-user1/php_user-cgi/gdtest.php on this server と表示されます。 以下に当方の情報をお示しますので、どこが間違っているのか ご指摘いだだけますようお願いいたします。 1.Apache config ./configure --prefix=/usr/local/apache2 \ --with-apr=/usr/local/apr/apr-1.5.2 \ --with-apr-util=/usr/local/apr-util/apr-util-1.5.4 \ --with-pcre=/usr/local/pcre/pcre-8.38 \ --with-mpm=prefork \ --with-suexec-userdir=public_html \ --with-suexec-docroot=/home \ --with-suexec-caller=daemon \ --enable-suexec apache は User daemon, Group daemon で動作する 2.PHP config phpinfo()で確認 Configure Command : './configure' '--enable-mbstring=ja' '--enable-bcmath' '--with-gd' '--with-freetype-dir=/usr/include/' '--with-png-dir=/usr/include' '--with-jpeg-dir=/usr/include' Server API : CGI/FastCGI Virtual Directory Support : disabled Loaded Configuration File : /usr/local/lib/php.ini : 3.Virtual Hostは正常動作 /usr/local/apache2/conf/extra/httpd-vhosts.conf # 1st priority <VirtualHost 172.16.72.152:80> ServerAdmin root@172.16.72.152 DocumentRoot "/usr/local/apache2/htdocs" ServerName 172.16.72.152:80 ErrorLog "logs/error_log" CustomLog "logs/access_log" common ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" <Directory "/usr/local/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride All Action php56 /cgi-bin/php56-cgi AddHandler php56 .php Require all granted </Directory> </VirtualHost> # 2nd priority <VirtualHost 172.16.72.152:80> ServerAdmin root@172.16.72.152 DocumentRoot "/home/user1/public_html" ServerName dummy-host1.XXXXXXX.jp ErrorLog "logs/dummy-host1-error_log" CustomLog "logs/dummy-host1-access_log" common SuexecUserGroup user1 user1 ScriptAlias /cgi-bin/ "/home/user1/cgi-bin/" Action php_user1 /cgi-bin/php_user1-cgi AddHandler php_user1 .php <Directory "/home/user1/public_html"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost> 4.suexec -V -D AP_DOC_ROOT="/home" -D AP_GID_MIN=100 -D AP_HTTPD_USER="daemon" -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" 5. httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_prefork_module (static) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) reqtimeout_module (shared) filter_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) suexec_module (shared) cgid_module (shared) vhost_alias_module (shared) dir_module (shared) actions_module (shared) userdir_module (shared) alias_module (shared) 6. directory, file関係 755 user1 user1 /home/user1/cgi-bin <-- daemon でも変わらない 755 user1 user1 /home/user1/cgi-bin/php_user1-cgi cgi版phpである /usr/local/apache2/cgi-bin/pgp56-cgi を php_user1-cgi としてコピー 755 user1 user1 /home/user1/public_html/gdtest.php /home, /home/user1 もパーミッションは 755 7. log messages 172.16.72.152 - - [09/Feb/2016:15:13:30 +0900] "GET /gdtest.php HTTP/1.1" 403 241 [/usr/local/apache2/logs/dummy-host1-error_log] [Tue Feb 09 15:13:] [authz_core:error] [pid 4905] [client 172.16.72.152:43902] AH01630: client denied by server configuration: /home/user1/cgi-bin/php_user1-cgi

  •  suEXECのサーバについて

    レンタルサーバで、CGIのパーミッション設定が、 suEXECなので、○○にしてください、とのことから、設定をして、CGIが使えるようになりました。しかし、今度はPHPが動きません。どのようにしたらいいのでしょうか?ネットで検索して、suEXECの場合のデフォルトのPHPのパーミッション設定方法を当ててみても動きません。

    • ベストアンサー
    • PHP
  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • Apache2.0とActivePerl5.8でCGIが動作しない

    ご教授願います。  掲題の通り、Win2000ProにApache2.0.48、ActibePerl5.8.1.807をインストールしローカル上にてApacheの動作確認は出来ました。  色々なサイトを調べ、現在のhttpd.confは下記のような設定となっています。 【httpd.confの主な変更点】  1:DocumentRootは別ドライブのフォルダ(C:ではない)に変更(httpd.confのファイル、229行目あたり)  2:同様に<Directory>も1と同じフォルダ(httpd.confのファイル、255行目あたり)  3:Options Indexes FollowSymLinks MultiViews ExecCGI Includesと変更(httpd.confのファイル、269行目あたり)  4:ActivePerlのインストール先は「C:/usr/local/」です。  5:test.cgiの格納場所は1で指定したフォルダと同じです。 【症状】  ブラウザのアドレスに「http://localhost」を入力するとApacheの動作確認画面が出ますが、「http://localhost/test.cgi」を入力すると『Forbidden You don't have permission to access/test.cgi on this server」と表示されます。 知識不足で申し訳ございませんが、よろしくお願いいたします。

  • redhat 7.0 でApacheでCGI

    今、ApacheでWEBサーバーつくったのはいいでんすが、なぜかどのCGIも動きません。Internal Server Eroor がでます。 おそらくhttpd.confの設定だろうと思うのですが、どうやってもうまくいきません。 ちなみにCGIの中身はちゃんとチェック済みです(フリーのCGIスクリプトを3っつくらいためしました)あと、パーミッション設定もチェック済みで、テキストをただ表示させるだけのCGIすら動きません。 よければどなたかhttpd.confの中身のせときます。 どなたかアドバイスと、くわしくhttpd.confの設定がのってるサイトを教えていただけないでしょうか? あと、できればWebminでの設定方法を知っている方おしえていただけないでしょうか? http://ks-pro.dns2go.com/httpd.conf.txt