ACL
Section: Misc. Reference Manual Pages (9)
索引
jman
BSD mandoc
索引
名称
acl
- 仮想ファイルシステムアクセス制御リスト
索引
書式
In sys/param.h
In sys/vnode.h
In sys/acl.h
カーネルコンフィギュレーションファイルの中に、
options UFS_ACL
索引
解説
アクセス制御リスト、すなわち ACL は、
ファイルおよびディレクトリを表現する vnode に対する権限を、
きめ細かく指定可能とします。
しかしながら、
異なる ACL のセマンティクスを持つファイルシステムが過多にあるため、
vnode インタフェースは ACL の文法のみを理解し、基礎をなすファイルシステムが
細部を実装することを当てにしています。
基礎をなすファイルシステムに依存して、個々のファイルまたはディレクトリは、
関連付けられる 0 個以上の ACL を持つことが可能です。
それぞれ ACL の名前は、適切な vnode ACL 呼び出し
VOP_ACLCHECK9,
VOP_GETACL9
および
VOP_SETACL9
の
Fa type
フィールドを使用して指定されます。
現在は、個々の ACL は以下に定義されるカーネル内で固定サイズの
Vt acl
構造体によって表現されます。
struct acl {
int acl_cnt;
struct acl_entry acl_entry[ACL_MAX_ENTRIES];
};
ACL は、ACL エントリの固定サイズ配列で構成されます。
各 ACL エントリは、
パーミッションの組、主要な名前空間、主要な識別子から構成されます。
個別の ACL エントリは、以下のメンバを持つ構造体の
Vt acl_entry_t
型です。
- Vt 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
-
ファイルグループクラスの中のプロセスが許可されることができる
任意のアクセス権の最高限度。
- ACL_OTHER
-
その他の ACL エントリによって保護されていない
プロセスのための任意のアクセス権。
- ACL_OTHER_OBJ
-
ACL_OTHER
と同じです。
各々の ACL エントリは、厳密に、1 つの
ACL_USER_OBJ
と 1 つの
ACL_GROUP_OBJ
と 1 つの
ACL_OTHER
を含まなければなりません。
ACL_USER
ACL_GROUP
または
ACL_OTHER
が存在する場合には、厳密に 1 つの
ACL_MASK
エントリが存在するべきです。
- Vt uid_t ae_id
-
この ACL がアクセスパーミッションを記述しているユーザのユーザ ID。
- Vt acl_perm_t ae_perm
-
このフィールドは、この ACL に適合するプロセスが関連したファイルの
アクセスのために、どの種類のアクセスかを定義します。
- ACL_EXECUTE
-
プロセスは関連したファイルの実行が可能です。
- ACL_WRITE
-
プロセスは関連したファイルへの書込みが可能です。
- ACL_READ
-
プロセスは関連したファイルからの読込みが可能です。
- ACL_PERM_NONE
-
プロセスは関連したファイルへの読込み、書込みまたは実行のパーミッションを
所有していません。
索引
実装に関する注
typedef mode_t *acl_permset_t;
/* 内部の ACL 構造体 */
struct acl {
int acl_cnt;
struct acl_entry acl_entry[ACL_MAX_ENTRIES];
};
/* 外部の ACL 構造体 */
struct acl_t_struct {
struct acl ats_acl;
int ats_cur_entry;
};
typedef struct acl_t_struct *acl_t;
/*
* ae_tag フィールドに有効な値
*/
#define ACL_UNDEFINED_TAG 0x00000000
#define ACL_USER_OBJ 0x00000001
#define ACL_USER 0x00000002
#define ACL_GROUP_OBJ 0x00000004
#define ACL_GROUP 0x00000008
#define ACL_MASK 0x00000010
#define ACL_OTHER 0x00000020
#define ACL_OTHER_OBJ ACL_OTHER
/*
* acl_type_t 引数のために有効な値
*/
#define ACL_TYPE_ACCESS 0x00000000
#define ACL_TYPE_DEFAULT 0x00000001
#define ACL_TYPE_AFS 0x00000002
#define ACL_TYPE_CODA 0x00000003
#define ACL_TYPE_NTFS 0x00000004
#define ACL_TYPE_NWFS 0x00000005
/*
* ae_perm フィールドに可能なフラグ
*/
#define ACL_EXECUTE 0x0001
#define ACL_WRITE 0x0002
#define ACL_READ 0x0004
#define ACL_PERM_NONE 0x0000
#define ACL_PERM_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ)
#define ACL_POSIX1E_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ)
/*
* acl_get_entry() のための entry_id に可能な値
*/
#define ACL_FIRST_ENTRY 0
#define ACL_NEXT_ENTRY 1
/*
* ae_id フィールドの中の未定義の値
*/
#define ACL_UNDEFINED_ID ((uid_t)-1)
索引
関連項目
acl(3),
vaccess_acl_posix1e9,
VFS(9),
vaccess(9),
VOP_ACLCHECK9,
VOP_GETACL9,
VOP_SETACL9
索引
作者
このマニュアルページは
An Robert Watson
が書きました。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 実装に関する注
-
- 関連項目
-
- 作者
-
Time: 07:07:51 GMT, January 12, 2009