Happy My Life

日常とか技術とか

suexecの設定を変更する方法

Ubuntuでは、SuexecのDocrootが/var/wwwに設定されている。 このままだと、/home/foo/public_htmlではsuexecが使用できないので,suexecの設定を変更してビルドし直した。 Rebuilding suexec with Different Options on Ubuntu ≪ planetOzhを参考にした。

suexecの設定を確認

ubuntuのデフォルトでは、以下のように表示されるはず。

$ sudo ./suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

DOC_ROOT="/home/"に変更する

suexecはapache2.2-commonに含まれているため、apache2.2-commonをビルドする準備をする

$ cd /usr/src
$ apt-get build-dep apache2.2-common
$ apt-get source apache2.2-common
$ cd apache2-2.2.3/

AP2_COMMON_CONFARGSのDOC_ROOTを/homeに変更する

$ vi debian/rules
 --with-suexec-docroot=/home 

dchを使ってchange logを書きかえる(dchはdevscriptパッケージに含まれている)

$ dch -i

あとはbuildするだけ

$ dpkg-buildpackage

/usr/srcに出来あがったapache2.2-common.debからインストールしてもよいが、面倒なのでパッケージ化される前のバイナリをコピーする

$ sudo cp debian/apache2.2-common/usr/lib/apache2/suexec /usr/lib/apache/suexec

変更されているか確認

$ sudo ./suexec -V
 -D AP_DOC_ROOT="/home"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"