Apache: 2008年4月アーカイブ

たとえば、CentOS5のApacheなんかだと、最初からsuexecが有効になっています。

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


まあ、コンパイル時に有効になっていますからね。仕方がないってものです。

# httpd -V
Server version: Apache/2.2.3
Server built:   Jan 15 2008 20:33:30
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


しかし、suexecは無効にしてしまいます。

# cd /usr/sbin
# mv suexec suexec.disabled
# /etc/init.d/httpd restart


多アカウント環境のApacheで、代わりになにを使うかというと、
mod_ruidがいいかもしれません。
http://websupport.sk/~stanojr/projects/mod_ruid/

インストールの仕方は超簡単 最初にlibcapと、apxsがすでに入っていることを確認してください。

# rpm -qa | grep libcap
libcap-1.10-26
libcap-devel-1.10-26

# which apxs /usr/sbin/apxs

# apxsはhttpd-devel.i386パッケージに入っています。 # libcapもhttpd-develもなかったらyumなどでインストールしてください


ダウンロードしてインストールします。

# wget http://websupport.sk/~stanojr/projects/mod_ruid/mod_ruid-0.6.tar.gz
# tar xvzf mod_ruid-0.6.tar.gz
# cd mod_ruid-0.6
# apxs -a -i -l cap -c mod_ruid.c
# /etc/init.d/httpd restart
httpd.confにはすでにモジュールをロードする設定が書き込まれています。
#
# The following modules are not loaded by default:
#
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule asis_module modules/mod_asis.so
LoadModule ruid_module        /usr/lib/httpd/modules/mod_ruid.so


Defaultの設定でstat
(ファイルの所有者のユーザーにsetuid/setgidされる)になっているので、
特に追記せず、そのままでも動きます。

とはいうものの、デフォルトの状態では最小のuidとgidは100になっているので、 uidが48になっていたりする、'apache'は使用されません。 なので、
RDefaultUidGid  apache apache
こういう設定が一行必要になってくるでしょう。


ただし、suexecと違って、public_htmlだけに効くとかいうわけではなく、
もう、全部に効いてしまうので、すでに動いているシステムに導入するには
(特にCGIの)注意が必要でしょう。

VirtualHostのディレクティブの中には 下記のように固定の設定を仕込んでもよいでしょう。
RMode          config
RUidGid        username groupname

このアーカイブについて

このページには、2008年4月以降に書かれたブログ記事のうちApacheカテゴリに属しているものが含まれています。

前のアーカイブはApache: 2006年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Apache: 2008年4月: 月別アーカイブ

Powered by Movable Type 4.1