Content-type: text/html
cc [ flag... ] file... -lsec [ library... ] #include <sys/acl.h>
int acl_check(acl_t *aclp, int isdir);
The acl_check() function checks the validity of an ACL pointed to by aclp. The isdir argument checks the validity of an ACL that will be applied to a directory. The ACL can be either a POSIX draft ACL as supported by UFS or NFSv4 ACL as supported by ZFS or NFSV4.
When the function verifies a POSIX draft ACL, the rules followed are described in aclcheck(3SEC). For NFSv4 ACL, the ACL is verified against the following rules:
• The inheritance flags are valid.
• The ACL must have at least one ACL entry and no more than {MAX_ACL_ENTRIES}.
• The permission field contains only supported permissions.
• The entry type is valid.
• The flag fields contain only valid flags as supported by NFSv4/ZFS.
If any of the above rules are violated, the function fails with errno set to EINVAL.
If the ACL is valid, acl_check() returns 0. Otherwise errno is set to EINVAL and the return value is set to one of the following:
EACL_INHERIT_ERROR There are invalid inheritance flags specified.
EACL_FLAGS_ERROR There are invalid flags specified on the ACL that don't map to supported flags in NFSV4/ZFS ACL model.
EACL_TYPE_ERROR The ACL contains an unknown value in the type field.
EACL_MEM_ERROR The system cannot allocate any memory.
EACL_INHERIT_NOTDIR Inheritance flags are only allowed for ACLs on directories.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Evolving |
MT-Level | MT-Safe |
acl(2), aclcheck(3SEC), aclsort(3SEC), acl(5), attributes(5)