ACL\_EQUIV\_MODE(3) Library Functions Manual ACL\_EQUIV\_MODE(3)

# [NAME](#NAME)

`acl_equiv_mode` — check for an equivalent ACL

# [LIBRARY](#LIBRARY)

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

# [SYNOPSIS](#SYNOPSIS)

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

`int`  
`acl_equiv_mode`(`acl_t acl`, `mode_t *mode_p`);

# [DESCRIPTION](#DESCRIPTION)

The [`acl_equiv_mode`](#acl_equiv_mode)() function checks if the ACL pointed to by the argument `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 permission bits, and is considered equivalent with the traditional file permission 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](#RETURN_VALUE)

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](#ERRORS)

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

\[[`EINVAL`](#EINVAL)]

The argument `acl` is not a valid pointer to an ACL.

# [STANDARDS](#STANDARDS)

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](#SEE_ALSO)

[acl\_from\_mode(3)](/man/os/acl/acl_from_mode.3), [acl(5)](/man/os/acl/acl.5)

# [AUTHOR](#AUTHOR)

Written by Andreas Gruenbacher ⟨andreas.gruenbacher@gmail.com⟩.

March 23, 2002 Linux ACL

---

Document: acl_equiv_mode(3) from acl 2.4.0-r4 (Chainguard OS)
Source: https://git.savannah.nongnu.org/git/acl.git
