Apache HTTP サーバ バージョン 2.2

| 説明: | ファイルの所有者に基づいた承認 |
|---|---|
| ステータス: | Extension |
| モジュール識別子: | authz_owner_module |
| ソースファイル: | mod_authz_owner.c |
| 互換性: | Apache 2.1 以降で使用可能 |
このモジュールはリクエストされたファイルのファイルシステムの
所有者やグループを HTTP 認証に使われたユーザ ID (ウェブユーザ ID) と
比較することでアクセスを承認します。提供されたユーザ名とパスワードは
mod_auth_basic や
mod_auth_digest のような認証モジュールで既に
適切に検証されている必要があります。mod_authz_owner
は以下のように、Require ディレクティブの file-owner と
file-group という二つの引数を認識します:
file-ownerjones により所有されている
と言ったときは、ウェブからのアクセスに使われるユーザ名も
jones でなければなりません。file-groupmod_authz_groupfile や mod_authz_dbm
により提供されるグループデータベースに存在していて、
ウェブユーザ名がそのグループに属していなければなりません。
例えば、オペレーティングシステムがファイルは (システムの) グループ
accounts により所有されていると言ったときは、
accounts がグループデータベースに存在して、
リクエストに使用されたウェブユーザ名がそのグループに属している
必要があります。ファイルシステムに実際には存在しないリソース
(つまり バーチャルなリソース) の承認に
mod_authz_owner が使用されたときは、
アクセスは拒否されます。
特に、コンテント ネゴシエーションされた"MultiViews" のリソースは 決して承認しません。
複数ユーザのシステムで 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>
上記のようなシステムで、数人のユーザがプロジェクトのファイルを
~/public_html/project-foo で共有しているとします。
ファイルはシステムのグループ foo に所有されていて、
AuthDBMGroupFile
データベースが一つだけあり、そこにすべてのウェブユーザ名と
グループのメンバが列挙されている、つまり、それらの
ユーザは少なくとも foo というグループに属している、とします。
jones とsmith の二人共がグループ
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>
| 説明: | 承認が下位承認モジュールに渡されるかどうかを設定する |
|---|---|
| 構文: | AuthzOwnerAuthoritative On|Off |
| デフォルト: | AuthzOwnerAuthoritative On |
| コンテキスト: | ディレクトリ, .htaccess |
| 上書き: | AuthConfig |
| ステータス: | Extension |
| モジュール: | mod_authz_owner |
AuthzOwnerAuthoritative ディレクティブを
明示的に Off に設定すると、以下の場合に認証が
(modules.c で定義されている) 下位のモジュールに
渡されるようにします:
file-owner の場合は、提供されたウェブユーザ名に
ファイルシステムの所有者が一致しないか、所有者がわからない場合。file-group の場合は、提供されたウェブユーザ名が
ファイルシステムグループに存在しないか、わからない場合。値を Off に設定すると、file-owner と
file-group を組み合わせることもできるようになり、
その場合はどちらか (両方でも) にマッチした場合にアクセスを許可されます。
デフォルトでは制御は渡されず、未知のグループの場合は Authentication
Required 応答が返されます。ですから、Off に設定しないことで
システムを安全に保つことができ、NCSA 互換の振る舞いをさせることになります。