Vine 5.2 / 6 の apache2 suexec 対策

passwd とか group 等のユーザ情報を Vine 4 から引き継いでいるため,uid と gid のデフォルト値が Vine 5.2 や 6 とそぐわず,デフォルトの apache2 上で CGI 動作時にエラーが出てしまいます.
ログをみるとこんな感じ.
/var/log/apache2/error.log

[Sun Dec 11 23:04:38 2011] [error] [client xxx.yyy.zzz.www] suexec policy violation: see suexec log for more details, referer: http://xxxxxxxx/
[Sun Dec 11 23:04:38 2011] [error] [client xxx.yyy.zzz.www] Premature end of script headers: XXXX.cgi, referer: http://xxxxxxx/

/var/log/apache2/suexec.log

[2011-12-11 23:02:16]: cannot run as forbidden gid (100/XXXX.cgi)
[2011-12-11 23:02:17]: uid: (500/username) gid: (100/users) cmd: XXXX.cgi

これは,suexec のデフォルト指定では gid >= 500 から CGI 実行を許すのに対して,実際の gid が 100 と小さいことが原因のようです.
というわけで,apache2 を rebuild して,suexec の制限を緩めます.

# apt-get update
# apt-get source apache2 # apache2 の source rpm を取得.
# rpm -Uvh apache2-2.2.14-16vl5.src.rpm # 取得した source rpm を rpmbuild のディレクトリに展開.

SPEC ディレクトリの spec ファイルを編集
ここを書き換えます.

修正前
--with-suexec-uidmin=500 --with-suexec-gidmin=500 \
修正後
--with-suexec-uidmin=100 --with-suexec-gidmin=100 \

uid は書き換えなくてもOKです.

# rpmbuild -ba --target x86_64 apache2-vl.spec # rebuild. target architecture が 386系なら i686 とかしてください.
# rpm -Uvh apache2-*2.2.14-16vl5*.rpm # インストール.すでに入っている apache2 とリプレイスなら,--replacepkgs オプションが必要です.

とりあえず動作するようになったけれど, apache2 更新のたびに rebuild はめんどいね.