acl_valid(3)

acl_valid3

Validate an acl

Usage

#include <sys/types.h>

#include <sys/acl.h>

int

acl_valid(acl_t acl);

Library

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

Overview

The 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

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

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

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

Releases

13 releases since Debian 3.0 (Woody); the text changed 3 times.

  1. 3.0–3.1
  2. 4.0–5.0
  3. 6.0–10
  4. 11–Arch

Standards

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

Author

Derived from the FreeBSD manual pages written by Robert N M Watson ⟨[email protected]⟩, and adapted for Linux by Andreas Gruenbacher ⟨[email protected]⟩.

From acl 2.4.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.