home *** CD-ROM | disk | FTP | other *** search
-
-
-
- aaaaccccllll((((4444)))) aaaaccccllll((((4444))))
-
-
-
- NNNNAAAAMMMMEEEE
- acl - Access Control Lists
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////aaaaccccllll....hhhh>>>>
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- Access Control Lists (ACLs) are supported on XFS file systems only.
-
- ACLs provide a mechanism for finer grained access control than the
- traditional UNIX discretionary access control mechanism. An ACL is a
- list of users and/or groups and their access rights, which is associated
- with a file or directory. ACLs are optional. In addition to the ACL
- used to mediate access, a directory may have a second ACL which defines
- the default initial ACL for files created in that directory. Files have
- only the single access control ACL.
-
- At the interface to the library routines, ACLs are represented in a
- _s_t_r_u_c_t _a_c_l which is defined in <_s_y_s/_a_c_l._h>.
-
- #define ACL_MAX_ENTRIES 25
-
- typedef ushort acl_perm_t;
- typedef int acl_type_t;
- typedef int acl_tag_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];
- };
-
-
- This is a fixed size structure with a variable number of active _s_t_r_u_c_t
- _a_c_l__e_n_t_r_y entries. The maximum number of entries is _A_C_L__M_A_X__E_N_T_R_I_E_S
- which is currently defined to be 25. The number of active entries is
- indicated in _a_c_l__c_n_t.
-
- A _s_t_r_u_c_t _a_c_l__e_n_t_r_y consists of three fields, _a_e__t_a_g, which identifies the
- type of the entry, and is one of the following values (all other values
- are invalid):
-
- _A_C_L__U_S_E_R__O_B_J (0x01)
- access permissions for the file's owner.
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- aaaaccccllll((((4444)))) aaaaccccllll((((4444))))
-
-
-
- _A_C_L__U_S_E_R (0x02)
- access permissions for a user other than the owner.
-
- _A_C_L__G_R_O_U_P__O_B_J (0x04)
- access permissions for users with the same group as the
- file's group
-
- _A_C_L__G_R_O_U_P (0x08)
- access permissions for other groups
-
- _A_C_L__M_A_S_K (0x10)
- mask entry
-
- _A_C_L__O_T_H_E_R__O_B_J (0x20)
- other entry.
-
- The _a_e__i_d field of _s_t_r_u_c_t _a_c_l__e_n_t_r_y specifies the UID or
- GID for the entry. The _a_e__p_e_r_m field specifies the
- permissions using the following defined values:
-
- _A_C_L__R_E_A_D (0x04)
- read access permitted
-
- _A_C_L__W_R_I_T_E (0x02)
- write access permitted
-
- _A_C_L__E_X_E_C_U_T_E (0x01)
- execute (search for directories) access permitted
-
- As with the basic permissions for a file, these may be or'ed together.
-
- Two types of ACLs are defined. _A_C_L__T_Y_P_E__A_C_C_E_S_S (0) indicates that the ACL
- is to be used in making access control decisions for the file or
- directory with which it is associated. _A_C_L__T_Y_P_E__D_E_F_A_U_L_T (1) indicates
- that the ACL is a default ACL. Default ACLs are associated only with
- directories, and supply the initial ACL for a file created in that
- directory. Note that file-creation mode masks may effect the ACLs of
- files created as a result of using directory default ACLs (see _u_m_a_s_k(1)).
- ACLs are supplied using the _a_c_l__g_e_t__f_i_l_e(3c) and _a_c_l__s_e_t__f_i_l_e(3c) calls.
-
- EEEEXXXXTTTTEEEERRRRNNNNAAAALLLL RRRREEEEPPPPRRRREEEESSSSEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
- ACLs are represented in a standard format for human readable input /
- output. Each ACL entry is specified as three colon separated fields.
- ACL entries are separated by white space or new lines. Everything after a
- "#" character is considered a comment and is ignored to the end of the
- line. The first field of an ACL entry is the entry type, which can be
- one of the following: "user", "group", "other", "mask", "u", "g", "o",
- "m".
-
- The second field is a user name, numeric UID, group name, or numeric GID,
- depending on the value of the first field. (_a_c_l__f_r_o_m__t_e_x_t(3c) supports
- only the strings, not the numeric UID/GID values.) If the second field
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- aaaaccccllll((((4444)))) aaaaccccllll((((4444))))
-
-
-
- is empty, it implies that the ACL entry is for the owning user or group
- of the file. Mask and other entries must have an empty second field.
- The third field is the discretionary access permissions for this ACL
- entry. This may be represented in two forms. The first is the string
- "rwx" where each letter may be replaced by a "-" indicating no access of
- that type. The parsing of this string by _a_c_l__f_r_o_m__t_e_x_t(3c) requires that
- it be exactly as shown and not be reordered, e.g. rxw is not valid.
-
- Some programs allow a second form, the relative symbolic form (used for
- input). The relative symbolic form is preceded by a ``+'' to indicate
- additional access or a ``^'' to indicate that access is to be removed,
- similarly to the inputs to the _c_h_m_o_d(1) command. The relative symbolic
- string is at least one character. The symbolic string contains at most
- one each of the following characters in any order: "r", "w", and "x".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-