ACL\_VALID(3) Library Functions Manual ACL\_VALID(3)

# [NAME](#NAME)

`acl_valid` — validate an ACL

# [LIBRARY](#LIBRARY)

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

# [SYNOPSIS](#SYNOPSIS)

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

`int`  
`acl_valid`(`acl_t acl`);

# [DESCRIPTION](#DESCRIPTION)

The [`acl_valid`](#acl_valid)() function checks the ACL referred to by the argument `acl` for validity.

The three required entries ACL\_USER\_OBJ, ACL\_GROUP\_OBJ, and ACL\_OTHER must exist exactly once in the ACL. If the ACL contains any ACL\_USER or ACL\_GROUP entries, then an ACL\_MASK entry is also required. The ACL may contain at most one ACL\_MASK entry.

The user identifiers must be unique among all entries of type ACL\_USER. The group identifiers must be unique among all entries of type ACL\_GROUP.

# [RETURN VALUE](#RETURN_VALUE)

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

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

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

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

The argument `acl` does not point to a valid ACL.

One or more of the required ACL entries is not present in `acl`.

The ACL contains entries that are not unique.

# [STANDARDS](#STANDARDS)

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

# [SEE ALSO](#SEE_ALSO)

[acl\_check(3)](/man/os/acl/acl_check.3), [acl\_set\_file(3)](/man/os/acl/acl_set_file.3), [acl(5)](/man/os/acl/acl.5)

# [AUTHOR](#AUTHOR)

Derived from the FreeBSD manual pages written by Robert N M Watson ⟨rwatson@FreeBSD.org⟩, and adapted for Linux by Andreas Gruenbacher ⟨andreas.gruenbacher@gmail.com⟩.

March 23, 2002 Linux ACL

---

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