はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

 サブドメインでアクセスするとSuExecが無効
日時: 2007/12/06 09:41
名前: ryou

?不明点・障害内容:サブドメインでアクセスするとSuExecが無効になり、実行ユーザーがapacheになる
?ログの有無   :Error 500
  (有:その内容):
?Distribution  :fedora core 4
      Version:
?Service Name  :Apache/2.0.54
      Version:
?ネットワーク構成:

当方、fedora core4を使っていまして、
apacheは、fedora core に最初から入っていたものをつかっております。(rpmでインストールされたものだとおもいます)

それで、ip一つで、ネーム判定のバーチャルサーバを使用しているのですが、

http://bbb.com/~aaa/abc.cgi
アドレスで実行した場合、SuExecで実行されて、ユーザーaaaで正常にcgiが実行できるのですが、

http://aaa.bbb.com/abc.cgi
アドレスで実行した場合、SuExecが無効になり、ユーザーがapacheで、実行されるのです。

上記を回避するために、http.confに、
SuexecUserGroupをいれた、
下記の設定をしまして、再度試したところ、

<VirtualHost *:80>
ServerName aaa.bbb.com
SuexecUserGroup aaa webuser
DocumentRoot /home/aaa/public_html
</VirtualHost>


http://bbb.com/~aaa/abc.cgi
アドレスで実行した場合、今までどおり、SuExecで実行されて、、ユーザーaaaで正常にcgiが実行されたのですが、

http://aaa.bbb.com/abc.cgi
アドレスで実行した場合、500エラーがでてしまい、実行できませんでした。

よーするに、サブドメイン形式にすると、SuExecが無効になってしまい、
それを回避するために、SuexecUserGroup aaa webuser という設定をいれると500エラーになってしまうのです。

ネットでも、いろいろ調べたのですが、

ーーーーーーーーーーーーーーーーーーーーーーーー調べた結果ーーーーーーーーーーーーーーーーーーーーーーー
VirtualHostディレクティブの中で
SuexecUserGroup uid gid
を設定するとSUEXECが有効になります。
?このときに気をつけるのは、Apacheをインストールした後にAppacheのUserとGroupは変更しないこと。
?SuexecUserGroupで指定するuidとgid(idじゃなく名称でも良い)は--with-suexec-uidminと--with-suexec-gidminの値を超えていること。
?そして実際にCGI等を配置するディレクトリは--with-suexec-docrootで指定したディレクトリ内にあることです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

とかかいてありました。
?AppacheのUserとGroupは変更は、変更していません。
?SuexecUserGroupで指定するuidとgidは、501と1000です。(--with-suexec-uidminと--with-suexec-gidminの値を超えているかはわかりません。ソースからインストールしなかったもので--with-suexec-uidminと--with-suexec-gidminの値はわかりません。)
?CGI等を配置するディレクトリは--with-suexec-docrootで指定したディレクトリ内にあるかはよくわからないです。
(ソースからインストールしなかったもので、--with-suexec-docrootで指定したディレクトリとかは、よくわからないです。)


?がいまいちわからなかったので、ネットでしらべてみました。
2chの記事が以下です。
ーーーーーーーーーーーーーーーーーーーーーーーー調べた結果ーーーーーーーーーーーーーーーーーーーーーーー

VHOSTの設定でSuexecUserGroupをそのユーザーに設定しても
ユーザーのホームディレクトリが/home/userだとsuEXECのドキュメントルート/var/wwwから外れてしまうのでCGIがうまく実行できません

上記の回答:mount -bind /home /var/www/ にすれば、OK

上記の回答の結果:質問したひとは、ちゃんと解決したみたいです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

上記の記事をみつけて、当方も、以下のようにやってみたのですが、

mount -bind /home /var/www/home

うまくいきませんでした。

そもそも、今まで、/home/userは、ちゃんとsuEXECになっていたので、上記のようにやっても、うまくいかないのは、あたりまえですね。

http://aaa.bbb.com/abc.cgi
という形式にすると、suEXECが、無効になり、
http://bbb.com/~aaa/
という形式にすると、suEXECが、有効にになるみたいです。

サブドメイン
http://aaa.bbb.com/abc.cgi
でアクセスした時に、suEXECを有効にしてしたいのですが、どうしても、できません。
これをどうやって解決すればいいのか、わからないので、すいませんが、ぜひとも、ご教授おねがいいたします。





html表示だと、サブドメインともども、正常に表示されます。
http://aaa.bbb.com/aiueo.html
http://bbb.com/~aaa/aiueo.html
どちらとも、同じように正常に表示されます。




#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `whoami`;
という、スクリプトを使って、実行ユーザーをしらべました。



※追加参照

当方、/home/akasatana/public_html/
というところをルートディレクトリにして、
http://bbb.com/
で、アクセスすれば、/home/akasatana/public_html/を参照できるというような、設定にしてあったのですが、
http://bbb.com/
で、アクセスしても、やはり、SuExecが無効になり、実行ユーザーがapacheになります。





■ コンテンツ関連情報

 Re: サブドメインでアクセスするとSuExecが無効 ( No.1 )
日時: 2007/12/06 10:47
名前: ryou

追加です。
有力な記事がみつかりました。
ただし、どういうことを言っているのか、当方、ちょっと理解できないです。

http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm


の、

「バーチャルホスト環境下での suEXEC 化」

という記事の場所で、


「但し、SuexecUserGroup ディレクティブを使用すると、そのホスト配下の UserDir がここで指定したユーザ権限になってしまうという問題があり、結果として SuexecUserGroup でユーザ/グループを指定すると個別ユーザで CGI が動作しなくなってしまいます。」

ということがかいてありました。

バーチャルホスト環境下での suEXEC 化
の場所の記事を読んでも、ちょっとどういうことか、意味がよくわからないです。
(文章が悪いのではなくて、当方のレベルが足りないとおもわれます)

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.