acl_create_entry(3) — Linux manual page


ACL_CREATE_ENTRY(3)   BSD 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

     #include <sys/types.h>
     #include <sys/acl.h>

     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 acl_p.

     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

     [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),

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 2022-12-17.  (At that
     time, the date of the most recent commit that was found in the
     repository was 2022-12-10.)  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                    Linux ACL