2004年08月28日(土) [過去の今日]
#3 suexecとsetuid
こないだから考えていた問題 だが、ようやく落ち着いて来たので再考。
suexecなら自分の実行権でしか動かないのだから、通常のUNIXユーザーと同じ範囲の事しかできない。つまり普段シェル等で行動してる範囲だけで動かすことになる。一方非suexec環境では全員が同じ権限でCGIを動かすことになり、パーミッションを666とかあまり好ましくない状態にしなければならないが、半面httpdに余計な権限を与えずにすむ。
要するにユーザーが他のユーザーにいたずらを仕掛ける可能性を考慮するならsuexecは使った方がいい、ということか。しかし、他ユーザーからのいたずらを防ぐだけならsetuidで充分かもしれない。強制的に本人の権限でしかCGIを動かせない理由としては、ちょっと弱い印象を受ける。
suexecが危険な理由はもちろん、nobodyのようなほとんど権限を持たないユーザー以外で実行されるということに尽きる。そこでusername-wwwのようなユーザーで実行させる、ということも可能なようだ。これならば余計な権限を与えること無く、内部ユーザーからのアタックも防げ、なおかつsuexecのセキュリティモデルを利用することが可能とおいしいことづくめだ。まだやり方は調べてないが、これが最終的な結論となるだろうか。
@ で、:
調べてみるとUserDirを使わず、全部VirtualHostにしちゃうらしい。むう、設定めんどいな。