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

