apacheのsuexecを有効にする

Apache・Webサーバ 2007/01/08 (月) -

VineLinuxのapache2(Apache2.0)でsuexecを有効にする。
Vineのバイナリパッケージでは、enable-suexecとしてmakeされているもののデフォルトでは有効になっていない。
参考URL


まずはsuexecの設定を確認
# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=500
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/lib/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"


suexec wrapperのパーミッションを変更する。
# ls -l /usr/lib/apache2/
drwxr-xr-x 2 root root 4096 Aug 28 22:44 build/
drwxr-xr-x 2 root root 4096 Aug 28 22:44 modules/
-rwx--x--x 1 root apache 43936 Jan 8 08:04 suexec*
# chmod 4750 /usr/lib/apache2/suexec
# ls -l /usr/lib/apache2/
drwxr-xr-x 2 root root 4096 Aug 28 22:44 build/
drwxr-xr-x 2 root root 4096 Aug 28 22:44 modules/
-rws--x--- 1 root apache 43936 Jan 8 08:04 suexec*


httpd.confでmod_suexecを読み込むように編集
LoadModule suexec_module modules/mod_suexec.so

apache2を再起動
# /etc/init.d/apache2 restart

apache2のエラーログに
[notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
と出ていればsuexecが有効になっている。

suexecのrebuild

Vineのバイナリパッケージだとsuexecが有効になるのは/var/www/以下のみ。
別なディレクトリでVirtualDomainでサイト構築していたりする場合はsuexecが使えないのでsuexecだけmakeしなおして差し替えることにする。
apt-getでapache2のソースをダウンロード
# apt-get source apache2

/tmpあたりにソースを展開。
# cd /tmp
# tar zxvf /usr/src/vine/SOURCES/httpd-2.0.55.tar.bz2
# cd httpd-2.0.55


今回はsuexec wrapperが欲しいだけなので細かいPatchなどは無視。
suexecの各種設定を織り込んでmake
# ./configure --enable-suexec \
--with-suexec-caller=apache \
--with-suexec-docroot=/home \
--with-suexec-userdir=public_html \
--with-suexec-uidmin=500 \
--with-suexec-gidmin=500 \
--with-suexec-bin=/usr/lib/apache2/suexec \
--with-suexec-logfile=/var/log/apache2/suexec.log
# make


各スイッチの意味についてはsuEXEC サポートを参照のこと。
出来上がったsuexec wrapperをデフォルトのものと入れ替える。
所有者とパーミッションに注意

# mv /usr/lib/apache2/suexec /usr/lib/apache2/suexec.OLD
# cp ./support/suexec /usr/lib/apache2/
# chown root.apache /usr/lib/apache2/suexec
# chmod 4750 /usr/lib/apache2/suexec


そしてapache2を再起動すれば完了
きちんと動作しているかどうかは↑のエラーログと 以下のCGIで確認できる。

#!/usr/bin/perl
# suexec test script
print "Content-type:text/html\n\n";
print "<H1>";
print `whoami`;
print "</h1>";


これをtest.cgiとか名前を付けてサイト上に置いてアクセスし自分のユーザー名が表示されれば正常にsuexecされている。



関連しそうなentry


Author: DebianOoM 2007/01/08 (月) 22:01


Tags: , , , ,



One Response a “apacheのsuexecを有効にする”


  1. Linkメモ(CentOS関連) | でびあんのがらくた箱 Says:

    [...] webmin : http://www.webmin.com/ apacheのsuExecを設定変更 suExecだけ差し替えでなく、src.rpmからリビルド → [...]

コメントをどうぞ

  • カテゴリー

  • Recent Entry

  • Archives

  • Recent Comments

  • タグクラウド

  • メタ情報

  • Feed

  • 美人Linux

  • あわせて読みたい

    レコメンデーションエンジン
  • SNSでのDebianOoM

  • Bookmark

  • PC・サーバ関連

  • Shopping