April 06, 2005

suEXEC その2

suEXECのことがやっとわかってきた。
いや、遅いけど。
linuxには、suっていうユーザアカウントを切り替えるコマンドがあるらしい。
それ利用してるのかどうかは、ソースを見てないからわからないけど、
ユーザを切り替えるってことをApache上で行うために使うのが、suEXECなんでしょう。
たぶん、ね。
確認する相手もいないので、事実はわからないのですよー。

まぁ、その辺の専門になるわけじゃないから、使えればいいのですよ(笑)

コンパイル時のオプションの確認方法がわかりました。
suEXEC -V
で確認できるご様子。
てか、大抵のアプリケーション(linuxでもそう呼ぶのかどうか不明)は、コマンドラインで --help を渡すと、
ヘルプが表示されたりする(もちろんほとんどは英語)のに、こやつは何にも出てくれないのよね。

まぁ、試してみると、こんな感じ。

#suEXEC -V -D AP_DOC_ROOT="/var/www/" -D AP_GID_MIN=100" -D AP_HTTPD_USER="apache"" -D AP_LOG_EXEC="/var/logs/suexec.log"" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"" -D AP_UID_MIN=500" -D AP_USERDIR_SUFFIX="public_html"

うろ覚えなんでちょっと違うかも。


ドキュメントルートはデフォルト状態から変えてますから、都合が悪いです。
てことで、ソースをコンパイル・リンクしなおして、suEXECだけを置き換えてみました。
suEXECしか置き換えないので、それ関連のだけをコンパイルオプションとして指定してみました。


# ./configure \
--enable-suexec \
--with-suexec-caller=apache \
--with-suexec-userdir=public_html \
--with-suexec-docroot=/home/www \
--with-suexec-logfile=/var/logs/suexec.log \
--with-suexec-uidmin=500 \
--with-suexec-gidmin=100

これで、makeすると、supportの中にsuEXECを発見。
それを、今まで使っていたsuEXECと置き換えて、再びコンパイルオプションを確かめる。

#suEXEC -V -D AP_DOC_ROOT="/home/www/" -D AP_GID_MIN=100" -D AP_HTTPD_USER="apache"" -D AP_LOG_EXEC="/var/logs/suexec.log"" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"" -D AP_UID_MIN=500" -D AP_USERDIR_SUFFIX="public_html"
あい、確かに変わってますね。 ちなみに、元のsuEXECは名前を変えておいておきました。 もしもの時のために、バックアップをね。


置き換えたあと、Apacheを再起動すると、ログに下のようなメッセージが吐き出される。

suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

これで、とりあえずきちんと入ってることは確認できました。


これでうまくいかないかなぁ、と思ったけど、そう甘くはないのね。
やっぱりエラー。
エラーログには、ログを開く権限がないとか言われてしまいました。
正確には覚えてないけどそんな感じ。

さてどうしましょってところで、昨日は終了。
この時点で、深夜2時くらいでしたからね。


しかしまぁ、どうしましょうかね。
とりあえず、ホストごとに、ログファイルの位置を指定してみましょか。

やっぱり、調べながらできるようになりたいな。
本もない、ネットも使えない、じゃ何を頼りにすればいいのやら。
ネット環境の復旧・・・できないかな。

[ サークル日記] Posted by AHO at April 6, 2005 12:06 PM
Comments
Post a comment






Remember personal info?