ACL(9) | FreeBSD Kernel Developer's Manual | ACL(9) |
名称
acl — 仮想ファイルシステムアクセス制御リスト書式
#include < sys/param.h>#include < sys/vnode.h>
#include < sys/acl.h>
カーネルコンフィギュレーションファイルの中に、
options UFS_ACL
解説
アクセス制御リスト、すなわち ACL は、ファイルおよびディレクトリを表現する vnode に対する権限を、きめ細かく指定可能とします。しかしながら、異なる ACL のセマンティクスを持つファイルシステムが過多にあるため、 vnode インタフェースは ACL の文法のみを理解し、基礎をなすファイルシステムが細部を実装することを当てにしています。基礎をなすファイルシステムに依存して、個々のファイルまたはディレクトリは、関連付けられる 0 個以上の ACL を持つことが可能です。それぞれ ACL の名前は、適切な vnode ACL 呼び出し VOP_ACLCHECK(9), VOP_GETACL(9) および VOP_SETACL(9) の type フィールドを使用して指定されます。現在は、個々の ACL は以下に定義されるカーネル内で固定サイズの acl 構造体によって表現されます。
struct acl { unsigned int acl_maxcnt; unsigned int acl_cnt; int acl_spare[4]; struct acl_entry acl_entry[ACL_MAX_ENTRIES]; };
ACL は、ACL エントリの固定サイズ配列で構成されます。各 ACL エントリは、パーミッションの組、主要な名前空間、主要な識別子から構成されます。この実装では、 acl_maxcnt フィールドは、常に ACL_MAX_ENTRIES に設定されています。
個別の ACL エントリは、以下のメンバを持つ構造体の acl_entry_t 型です。
- acl_tag_t ae_tag
-
以下は
ae_tag に設定されるべき ACL の型の定義のリストです。
- ACL_UNDEFINED_FIELD
- 未定義の ACL 型。
- ACL_USER_OBJ
- 実効ユーザ ID がファイルの所有者のユーザ ID と一致するプロセスのための任意のアクセス権。
- ACL_USER
- 実効ユーザ ID が ACL エントリの権限と一致するプロセスのための任意のアクセス権。
- ACL_GROUP_OBJ
- 実効グループ ID または全ての追加のグループがファイルの所有者のグループ ID と一致するプロセスのための任意のアクセス権。
- ACL_GROUP
- 実効グループ ID または全ての追加のグループが ACL エントリの権限と一致するプロセスのための任意のアクセス権。
- ACL_MASK
- ファイルグループクラスの中のプロセスが許可されることができる任意のアクセス権の最高限度。これは、POSIX.1e ACL のためだけに有効です。
- ACL_OTHER
- その他の ACL エントリによって保護されていないプロセスのための任意のアクセス権。これは、POSIX.1e ACL のためだけに有効です。
- ACL_OTHER_OBJ
- ACL_OTHER と同じです。
- ACL_EVERYONE
- すべてのユーザの任意のアクセス権。これは、 NFSv4 ACL のためだけに有効です。
各 POSIX.1e ACL エントリは、厳密に、1 つの ACL_USER_OBJ と 1 つの ACL_GROUP_OBJ と 1 つの ACL_OTHER を含まなければなりません。 ACL_USER, ACL_GROUP または ACL_OTHER が存在する場合には、厳密に 1 つの ACL_MASK エントリが存在するべきです。
- uid_t ae_id
- この ACL がアクセスパーミッションを記述しているユーザのユーザ ID。 ACL_USER と ACL_GROUP 以外のエントリにおいて、このフィールドは、 ACL_UNDEFINED_ID に設定されるべきです。
- acl_perm_t ae_perm
-
このフィールドは、この ACL に適合するプロセスが関連したファイルのアクセスのために、どの種類のアクセスかを定義します。 POSIX.1e ACL に関して、次は、有効です:
- ACL_EXECUTE
- プロセスは関連したファイルの実行が可能です。
- ACL_WRITE
- プロセスは関連したファイルへの書み込みが可能です。
- ACL_READ
- プロセスは関連したファイルからの読み込みが可能です。
- ACL_PERM_NONE
- プロセスは関連したファイルへの読み込み、書み込みまたは実行のパーミッションを所有していません。
NFSv4 ACL に関して、次は、有効です:
- ACL_READ_DATA
- プロセスは、関連するファイルから読み込みます。
- ACL_LIST_DIRECTORY
- ACL_READ_DATA と同じです。
- ACL_WRITE_DATA
- プロセスは、関連するファイルに書き込みます。
- ACL_ADD_FILE
- ACL_ACL_WRITE_DATA と同じです。
- ACL_APPEND_DATA
- ACL_ADD_SUBDIRECTORY
- ACL_APPEND_DATA と同じです。
- ACL_READ_NAMED_ATTRS
- 無視されます。
- ACL_WRITE_NAMED_ATTRS
- 無視されます。
- ACL_EXECUTE
- プロセスは、関連するファイルを実行します。
- ACL_DELETE_CHILD
- ACL_READ_ATTRIBUTES
- ACL_WRITE_ATTRIBUTES
- ACL_DELETE
- ACL_READ_ACL
- ACL_WRITE_ACL
- ACL_WRITE_OWNER
- ACL_SYNCHRONIZE
- 無視されます。
- acl_entry_type_t ae_entry_type
-
このフィールドは、NFSv4 ACL エントリのタイプを定義します。それは、 POSIX.1e ACL で使用されません。次の値は、有効です:
- ACL_ENTRY_TYPE_ALLOW
- ACL_ENTRY_TYPE_DENY
- acl_flag_t ae_flags
-
このフィールドは、NFSv4 ACL エントリの継承フラグを定義します。それは、POSIX.1e ACL で使用されません。次の値は、有効です:
- ACL_ENTRY_FILE_INHERIT
- ACL_ENTRY_DIRECTORY_INHERIT
- ACL_ENTRY_NO_PROPAGATE_INHERIT
- ACL_ENTRY_INHERIT_ONLY
関連項目
acl(3), vaccess_acl_nfs4(9), vaccess_acl_posix1e(9), VFS(9), vaccess(9), VOP_ACLCHECK(9), VOP_GETACL(9), VOP_SETACL(9)作者
このマニュアルページは、 によって書かれました。September 18, 2009 | FreeBSD |