????????????????????¨????°???¨??§????????°???????¨??????¬???????????°?????±??????????????§??????
サブドメインでアクセスすると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 化 の場所の記事を読んでも、ちょっとどういうことか、意味がよくわからないです。 (文章が悪いのではなくて、当方のレベルが足りないとおもわれます)
|
■ その他