FreeBSD6.3、そしてapache2.2のsuExec

結局ジャッジサポートからメールが来ないので、しょんぼりしながら鯖移行。
suExecをenableにしてapacheをmakeしたけんども、何故か動かんがや。
結論としては、suExecのDocrootをapacheのmake時に指定してなかった為。

適当な覚書

とりあえず、適当なcgiでどのユーザの権限で動いているか確認するがや。

#!/bin/sh
echo "Content-type: text/plain"
echo
whoami

どうみてもwwwです。
芝生やしてくれてます。

チルダ付の

example.com/~m-bird/

なURLでアクセスすると動いてくれる。
virtual host使って

m-bird.exsample.com

だとだめぽ。

打開策。

うちの環境では各ユーザのhome以下にpublic_htmlを置いているので、ここでcgiが実行出来るように
SUEXEC_DOCROOT="/home"
を付けてapacheコンパイル
そすると、/home以下のcgiを実行できるようになるのでおk。

んで。

チルダ付でhome以下のpublic_htmlでアクセスした場合は、特例でsuExecのセキュリティチェックが掛からない為実行可。
virtualhostディレクティブ使って運用しようとすると、特例から外れるのでだめぽっち、という事で。