acl_create_entry(3) — Linux manual page


ACL_CREATE_ENTRY(3)      Library Functions Manual    ACL_CREATE_ENTRY(3)

NAME         top

       acl_create_entry — create a new ACL entry

LIBRARY         top

       Linux Access Control Lists library (libacl, -lacl).

SYNOPSIS         top

       <sys/types.h> <sys/acl.h> int acl_create_entry(acl_t *acl_p,
       acl_entry_t *entry_p)

DESCRIPTION         top

       The acl_create_entry() function creates a new ACL entry in the
       ACL pointed to by the contents of the pointer argument acl_p.  On
       success, the function returns a descriptor for the new ACL entry
       via entry_p.

       This function may cause memory to be allocated.  The caller
       should free any releasable memory, when the new ACL is no longer
       required, by calling acl_free(3) with (void*)*acl_p as an
       argument.  If the ACL working storage cannot be increased in the
       current location, then the working storage for the ACL pointed to
       by acl_p may be relocated and the previous working storage is
       released. A pointer to the new working storage is returned via

       The components of the new ACL entry are initialized in the
       following ways: the ACL tag type component contains
       ACL_UNDEFINED_TAG, the qualifier component contains
       ACL_UNDEFINED_ID, and the set of permissions has no permissions
       enabled. Any existing ACL entry descriptors that refer to entries
       in the ACL continue to refer to those entries.

RETURN VALUE         top

       The acl_create_entry() function returns the value 0 if
       successful; otherwise the value -1 is returned and the global
       variable errno is set to indicate the error.

ERRORS         top

       If any of the following conditions occur, the acl_create_entry()
       function returns -1 and sets errno to the corresponding value:

       [EINVAL]           The argument acl_p is not a valid pointer to
                          an ACL.

       [ENOMEM]           The ACL working storage requires more memory
                          than is allowed by the hardware or system-
                          imposed memory management constraints.

STANDARDS         top

       IEEE Std 1003.1e draft 17 (“POSIX.1e”, abandoned)

SEE ALSO         top

       acl_init(3), acl_delete_entry(3), acl_free(3),
       acl_create_entry(3), acl(5)

AUTHOR         top

       Derived from the FreeBSD manual pages written by Robert N M
       Watson <>, and adapted for Linux by Andreas
       Gruenbacher <>.

COLOPHON         top

       This page is part of the acl (manipulating access control lists)
       project.  Information about the project can be found at  If you have a bug
       report for this manual page, see
       ⟨⟩.  This page was
       obtained from the project's upstream Git repository
       ⟨git://⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-01.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

Linux ACL                    March 23, 2002          ACL_CREATE_ENTRY(3)