mod_authz_owner - Apache HTTP サーバ バージョン 2.2

Apache Server 2.2

<-

Apache モジュール mod_authz_owner

説明:ファイルの所有者に基づいた承認
ステータス:Extension
モジュール識別子:authz_owner_module
ソースファイル:mod_authz_owner.c
互換性:Apache 2.1 以降で使用可能

概要

このモジュールはリクエストされたファイルのファイルシステムの 所有者やグループを HTTP 認証に使われたユーザ ID (ウェブユーザ ID) と 比較することでアクセスを承認します。提供されたユーザ名とパスワードは mod_auth_basicmod_auth_digest のような認証モジュールで既に 適切に検証されている必要があります。mod_authz_owner は以下のように、Require ディレクティブの file-ownerfile-group という二つの引数を認識します:

file-owner
提供されたウェブユーザ名はリクエストされたファイルの所有者の システムにおける名前と一致する必要があります。つまり、オペレーティング システムがファイルは jones により所有されている と言ったときは、ウェブからのアクセスに使われるユーザ名も jones でなければなりません。
file-group
ファイルを所有するシステムのグループの名前が、例えば mod_authz_groupfilemod_authz_dbm により提供されるグループデータベースに存在していて、 ウェブユーザ名がそのグループに属していなければなりません。 例えば、オペレーティングシステムがファイルは (システムの) グループ accounts により所有されていると言ったときは、 accounts がグループデータベースに存在して、 リクエストに使用されたウェブユーザ名がそのグループに属している 必要があります。

ファイルシステムに実際には存在しないリソース (つまり バーチャルなリソース) の承認に mod_authz_owner が使用されたときは、 アクセスは拒否されます。

特に、コンテント ネゴシエーションされた"MultiViews" のリソースは 決して承認しません。

top

設定例

Require file-owner

複数ユーザのシステムで Apache ウェブサーバが実行されていて、 ~/public_html/private に各ユーザがファイルを置いているとします。 AuthDBMUserFile データベースが一つだけあり、すべてのウェブユーザ名が列挙されており、 このユーザ名がサーバで実際にファイルを所有しているユーザ名と一致している場合、 次の節のような設定で、ユーザが自分自身のファイルにアクセスできるようになります。 /home/smith/public_html/private の中のファイルは、所有者が smith の代わりに jones になっていない限り、 jones にはアクセスは許可されません。

<Directory /home/*/public_html/private>
AuthType Basic
AuthName MyPrivateFiles
AuthBasicProvider dbm
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all
Satisfy All
Require file-owner
</Directory>

Require file-group

上記のようなシステムで、数人のユーザがプロジェクトのファイルを ~/public_html/project-foo で共有しているとします。 ファイルはシステムのグループ foo に所有されていて、 AuthDBMGroupFile データベースが一つだけあり、そこにすべてのウェブユーザ名と グループのメンバが列挙されている、つまり、それらの ユーザは少なくとも foo というグループに属している、とします。 jonessmith の二人共がグループ foo のメンバである場合、どちらの人も両方の project-foo にアクセスが許可されます。

<Directory /home/*/public_html/project-foo>
AuthType Basic
AuthName "Project Foo Files"
AuthBasicProvider dbm

# combined user/group database
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all
AuthDBMGroupFile /usr/local/apache2/etc/.htdbm-all

Satisfy All
Require file-group
</Directory>

top

AuthzOwnerAuthoritative ディレクティブ

説明:承認が下位承認モジュールに渡されるかどうかを設定する
構文:AuthzOwnerAuthoritative On|Off
デフォルト:AuthzOwnerAuthoritative On
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Extension
モジュール:mod_authz_owner

AuthzOwnerAuthoritative ディレクティブを 明示的に Off に設定すると、以下の場合に認証が (modules.c で定義されている) 下位のモジュールに 渡されるようにします:

  • file-owner の場合は、提供されたウェブユーザ名に ファイルシステムの所有者が一致しないか、所有者がわからない場合。
  • file-group の場合は、提供されたウェブユーザ名が ファイルシステムグループに存在しないか、わからない場合。

値を Off に設定すると、file-ownerfile-group を組み合わせることもできるようになり、 その場合はどちらか (両方でも) にマッチした場合にアクセスを許可されます。

デフォルトでは制御は渡されず、未知のグループの場合は Authentication Required 応答が返されます。ですから、Off に設定しないことで システムを安全に保つことができ、NCSA 互換の振る舞いをさせることになります。