ACL(9) FreeBSD カーネル開発者マニュアル ACL(9)
名称
acl − 仮想ファイルシステムアクセス制御リスト |
書式
#include <sys/param.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 { int acl_cnt; struct acl_entry acl_entry[ACL_MAX_ENTRIES]; }; ACL は、ACL エントリの固定サイズ配列で構成されます。各 ACL エントリは、 パーミッションの組、主要な名前空間、主要な識別子から構成されます。 個別の ACL エントリは、以下のメンバを持つ構造体の acl_entry_t 型です。 |
acl_tag_t ae_tag
以下は ae_tag に設定されるべき ACL の型の定義のリストです。 ACL_UNDEFINED_FIELD uid_t ae_id acl_perm_t ae_perm 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_posix1e(9), VFS(9), vaccess(9), VOP_ACLCHECK(9), VOP_GETACL(9), VOP_SETACL(9) |
作者
このマニュアルページは Robert Watson が書きました。 FreeBSD 10.0 December 23, 1999 FreeBSD 10.0 |