ACL_EQUIV_MODE(3)       BSD Library Functions Manual       ACL_EQUIV_MODE(3)

NAME         top

     acl_equiv_mode — check for an equivalent ACL

LIBRARY         top

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

SYNOPSIS         top

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

     acl_equiv_mode(acl_t acl, mode_t *mode_p);

DESCRIPTION         top

     The acl_equiv_mode() function checks if the ACL pointed to by the argu‐
     ment acl contains only the required ACL entries of tag types
     ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER, and contains no permissions
     other that ACL_READ, ACL_WRITE or ACL_EXECUTE.  If the ACL has this
     form, it can can be fully represented with the traditional file permis‐
     sion bits, and is considered equivalent with the traditional file per‐
     mission bits.

     If acl is an equivalent ACL and the pointer mode_p is not NULL, the
     value pointed to by mode_p is set to the value that defines the same
     owner, group and other permissions as contained in the ACL.

RETURN VALUE         top

     On success, this function returns the value 0 if acl is an equivalent
     ACL, and the value 1 if acl is not an equivalent ACL. On error, the
     value -1 is returned, and errno is set appropriately.

ERRORS         top

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

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

STANDARDS         top

     This is a non-portable, Linux specific extension to the ACL
     manipulation functions defined in IEEE Std 1003.1e draft 17
     (“POSIX.1e”, abandoned).

SEE ALSO         top

     acl_from_mode(3), acl(5)

AUTHOR         top

     Written 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 2018-10-29.  (At that time,
     the date of the most recent commit that was found in the repository was
     2018-06-18.)  If you discover any rendering problems in this HTML ver‐
     sion 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