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ディレクティブ使って運用しようとすると、特例から外れるのでだめぽっち、という事で。