Apache HTTP サーバ バージョン 2.2
This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.
You may follow this link to go to the current version of this document.
説明: | ファイルの所有者に基づいた承認 |
---|---|
ステータス: | 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-owner
jones
により所有されている
と言ったときは、ウェブからのアクセスに使われるユーザ名も
jones
でなければなりません。file-group
mod_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 互換の振る舞いをさせることになります。