ACLCHECK(3SEC) File Access Control Library Functions ACLCHECK(3SEC)

NAME


aclcheck - check the validity of an ACL

SYNOPSIS


cc [ flag... ] file... -lsec [ library... ]
#include <sys/acl.h>

int aclcheck(aclent_t *aclbufp, int nentries, int *which);


DESCRIPTION


The aclcheck() function checks the validity of an ACL pointed to by
aclbufp. The nentries argument is the number of entries contained in
the buffer. The which parameter returns the index of the first entry
that is invalid.


The function verifies that an ACL pointed to by aclbufp is valid
according to the following rules:

o There must be exactly one GROUP_OBJ ACL entry.

o There must be exactly one USER_OBJ ACL entry.

o There must be exactly one OTHER_OBJ ACL entry.

o If there are any GROUP ACL entries, then the group ID in
each group ACL entry must be unique.

o If there are any USER ACL entries, then the user ID in
each user ACL entry must be unique.

o If there are any GROUP or USER ACL entries, then there
must be exactly one CLASS_OBJ (ACL mask) entry.

o If there are any default ACL entries, then the following
apply:

o There must be exactly one default GROUP_OBJ ACL entry.

o There must be exactly one default OTHER_OBJ ACL entry.

o There must be exactly one default USER_OBJ ACL entry.

o If there are any DEF_GROUP entries, then the group ID
in each DEF_GROUP ACL entry must be unique.

o If there are any DEF_USER entries, then the user ID in
each DEF_USER ACL entry must be unique.

o If there are any DEF_GROUP or DEF_USER entries, then
there must be exactly one DEF_CLASS_OBJ (default ACL
mask) entry.

o If any of the above rules are violated, then the function
fails with errno set to EINVAL.

RETURN VALUES


If the ACL is valid, aclcheck() will return 0. Otherwise errno is set
to EINVAL and aclcheck() will return one of the following:

GRP_ERROR
There is more than one GROUP_OBJ or DEF_GROUP_OBJ
ACL entry.


USER_ERROR
There is more than one USER_OBJ or DEF_USER_OBJ
ACL entry.


CLASS_ERROR
There is more than one CLASS_OBJ (ACL mask) or
DEF_CLASS_OBJ (default ACL mask) entry.


OTHER_ERROR
There is more than one OTHER_OBJ or DEF_OTHER_OBJ
ACL entry.


DUPLICATE_ERROR
Duplicate entries of USER, GROUP, DEF_USER, or
DEF_GROUP.


ENTRY_ERROR
The entry type is invalid.


MISS_ERROR
Missing an entry. The which parameter returns -1
in this case.


MEM_ERROR
The system cannot allocate any memory. The which
parameter returns -1 in this case.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
|MT-Level | Unsafe |
+--------------------+-----------------+

SEE ALSO


acl(2), aclsort(3SEC), attributes(7)

December 10, 2001 ACLCHECK(3SEC)

tribblix@gmail.com :: GitHub :: Privacy