The Posix ACL user library ========================== The Posix ACL manipulation functions defined in Posix 1003.1e DS17 are declared in <sys/acl.h>; you need to link against libacl.a for these functions to be included in your binaries. There is an additional header file <acl/libacl.h> that gives you access to some extensions that are also contained in the same library. The functions declared there are: acl_to_any_text() Similar to acl_to_text(), but also allows you to specify: - a prefix string that is printed before each ACL entry. - a seperator character that is printed between two ACL entries. - a set of options (TEXT_* constants). This function returns the length in characters of the text returned in the len_p parameter, unless len_p is NULL. The returned string must be freed using the acl_free() function. Returns NULL and sets errno accordingly on error. acl_entry_to_any_str() Converts a single ACL entry to text, filling a buffer. It takes as additional parameter the ACL mask entry (which is used to computer the effective permissions if specified). The prefix and options are the same as for acl_to_any_text(). Returns -1 and sets errno accordingly on error. acl_cmp() Returns 0 if both ACLs are equal, and 1 otherwise. Returns -1 and sets errno accordingly on error. acl_check() Checks an ACL for validity, similar to acl_valid. Returns the entry at which an error occurred in last (unless last is NULL), and returns a positive error code (ACL_*_ERROR) if the ACL is invalid; 0 on success. Returns -1 and sets errno accordingly on error. acl_equiv_mode() Checks if an ACL is a basic ACL. If so, returns 0 and sets mode_p to the file mode permission bits that correspond to the ACL. Returns 1 otherwise. Returns -1 and sets errno accordingly on error. acl_entries() Returns the number of entries in an ACL. Returns -1 and sets errno accordingly on error. acl_error() Returns a textual message describing the error code returned by acl_check(). acl_get_perm() Check if a permission is set in a permission set (acl_permset_t). Returns 1 if the permission is set, or 0 if it is not set. Returns -1 and sets errno if an error occurs. Andreas