Apache HTTP サーバ バージョン 2.2

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.2 > モジュール

# Apache モジュール mod_authz_owner

Available Languages: en | ja | ko

説明: | ファイルの所有者に基づいた承認
ステータス: | 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" のリソースは 決して承認しません。

### ディレクティブ

### トピック

- 設定例

### 参照

- `Require`
- `Satisfy`

## 設定例

### 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` というグループに属している、とします。 `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 ディレクティブ

説明: | 承認が下位承認モジュールに渡されるかどうかを設定する
構文: | `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 互換の振る舞いをさせることになります。

Available Languages: en | ja | ko