Open matsumotory opened 11 years ago
こんな感じのディレクティブが良いかな。
<VirtualHost *:80>
...
VirtualDocumentRoot /usr/local/apache/vhosts/%0
PSFixedUserGroupFile /usr/local/apache/vhosts/%0/.permission_file
...
</VirtualHost>
それいい感じ
普通のVirtualHost設定の時は、
<VirtualHost *:80>
...
PSFixedUserGroup 501 501
...
</VirtualHost>
とか。
mod_vhost_alias際、デフォルト(.permission_fileがないとき)は、ドキュメントルートのディレクトリのuid/gidで固定してしまう、っていうのはどうでしょうか。 ちゃんと取れるのかはわからないですが。。
@cs-sonar
ドキュメントルート・ディレクトリのuid、gidがコンテンツのuid.gidと大抵の場合同じであることが想定できれば、それでもよさそうですね。どうなのだろう。
この時に取得するuid gidは非常に重要な情報なので、きちんとチェックできるような仕様にしたいですね。例えば、.permission_fileとドキュメントルートのuid、gidが一致していて、なおかつ処理するコンテンツのuid,gidが一致していれば実行する、といったような。
ドキュメントルートのディレクトリuid,gidで動作するのはデフォルトじゃないほうが安全な気がします。 あと、PSFixedUserGroupFile は ドキュメントルート外にも置けるのがいいなあ
ドキュメントルート外における方が良いですね。デフォルトはファイルの権限にしておいて、PSFixedUserGroupFile
が設定されていたら、そのファイルのuidgidを使う、ファイルがなければデフォルトの動きをする、という感じが良さそうです。
PSFixedUserGroupFile にて指定できるのはファイルだけではなくディレクトリも可能なようするのはどうでしょうか?
運用中のホスティングサービスに導入するという目線で考えた場合、できるだけ現状のシステムに変更なく導入したいと考えてしまうのですが、ディレクトリの指定も可能であればそういったコストが軽減できるパターンもあるのではないかと思います。
そうですね。ファイルやディレクトリのowner・groupが変更されて何か被害がでる、というのは避けるような仕様にする必要はありますね。
mod_vhost_aliasのようなmassivevirtualでもvirtualhost単位で動的にuidgidを固定できるようなディレクティブを追加したい。SuexecUserGroupを動的にやるような。いい方法なだろうか。
とかしたら、ホストで固定したいuidgidをそれぞれのホストが持つ何らかのファイルから動的に取得して、そのホストの処理は全てそのuidgidでコンテンツを処理する、といったような。具体的な案はまだない。
今の実装では、リクエストのあったファイルから動的にuidgidを取得するので、そうしたくない場合の機能を追加したい。