ACL(9)

명칭
acl - 가상 파일 시스템 액세스 제어 리스트

서식
<sys/param.h> <sys/vnode.h> <sys/acl.h>

    typedef int     acl_type_t;
    typedef int     acl_tag_t;
    typedef mode_t  acl_perm_t;
    struct acl_entry {
            acl_tag_t       ae_tag;
            uid_t           ae_id;
            acl_perm_t      ae_perm;
    };
    typedef struct acl_entry        *acl_entry_t;
    struct acl {
            int                     acl_cnt;
            struct acl_entry        acl_entry[ACL_MAX_ENTRIES];
    };
    typedef struct acl      *acl_t;
    /*
     * acl_entry_t 의 a_tag 에 유효한 값
     */
    #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
    /*
     * a_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
    /*
     * a_perm 필드에 가능한 플래그
     */
    #define ACL_PERM_EXEC      0x0001
    #define ACL_PERM_WRITE     0x0002
    #define ACL_PERM_READ      0x0004
    #define ACL_PERM_NONE      0x0000
    #define ACL_PERM_BITS      (ACL_PERM_EXEC | ACL_PERM_WRITE | ACL_PERM_READ)
    #define ACL_POSIX1E_BITS   (ACL_PERM_EXEC | ACL_PERM_WRITE | ACL_PERM_READ)

해설
액세스 제어 리스트, 즉 ACL 는, 파일 및 디렉토리를 표현하는 vnode 에 대한 권한을, 치밀하게 지정 가능으로 합니다. 그렇지만, 다른 ACL 의 시멘틱스를 가지는 파일 시스템이 과다하게 있기 (위해)때문에, vnode 인터페이스는 ACL 의 문법만을 이해해, 기초를 이루는 파일 시스템이 세부를 실장하는 것을 목표로 하고 있습니다. 기초를 이루는 파일 시스템에 의존해, 개개의 파일 또는 디렉토리는, 관련지을 수 있는 0 개 이상의 ACL 를 가지는 것이 가능합니다. 각각 ACL 의 이름은, 적절한 vnode ACL 호출 VOP_ACLCHECK(9), VOP_GETACL(9), VOP_SETACL(9) 의 type 필드를 사용해 지정됩니다.

현재는, 개개의 ACL 는 커널내에서 고정 사이즈의 ACL 구조체에 의해 표현됩니다. ACL 는, ACL 엔트리의 고정 사이즈 배열로 구성됩니다. 각 ACL 엔트리는, 퍼미션의 조, 주요한 이름 공간, 주요한 식별자로부터 구성됩니다. 묶을 수 있었던 acl_cnt 필드의 값에 의존해, 이러한 0 개 이상의 엔트리가 "정의" 될 수가 있습니다.

관련 항목
VFS(9), VOP_ACLCHECK(9), VOP_GETACL(9), VOP_SETACL(9)

저자
이 메뉴얼 페이지는 Robert Watson 하지만 썼습니다.