vaccess_acl_posix1e(9)
NAME
- vaccess_acl_posix1e - generate a POSIX.1e ACL access control
- decision
using vnode parameters
SYNOPSIS
#include <sys/param.h> #include <sys/vnode.h> #include <sys/acl.h> int vaccess_acl_posix1e(enum vtype type, uid_t file_uid, gid_t file_gid, struct acl *acl, mode_t acc_mode, struct ucred *cred, int *privused);
DESCRIPTION
- This call implements the logic for the UNIX discretionary
- file security
model with POSIX.1e ACL extensions. It accepts the vnodes - type type,
owning UID file_uid, owning GID file_gid, access ACL for the - file acl,
desired access mode acc_mode, requesting credential cred, - and an optional
call-by-reference int pointer returning whether or not priv - ilege was
required for successful evaluation of the call; the privused - pointer may
be set to NULL by the caller in order not to be informed of - privilege
information, or it may point to an integer that will be set - to 1 if privilege is used, and 0 otherwise.
- This call is intended to support implementations of VOP_AC
- CESS(9), which
will use their own access methods to retrieve the vnode - properties, and
then invoke vaccess_acl_posix1e() in order to perform the - actual check.
Implementations of VOP_ACCESS(9) may choose to implement ad - ditional security mechanisms whose results will be composed with the re
- turn value.
- The algorithm used by vaccess_acl_posix1e() is based on the
- POSIX.1e ACL
evaluation algorithm. The algorithm selects a matching en - try from the
access ACL, which may then be composed with an available ACL - mask entry,
providing UNIX security compatibility. - Once appropriate protections are selected for the current
- credential, the
requested access mode, in combination with the vnode type, - will be compared with the discretionary rights available for the cre
- dential. If the
rights granted by discretionary protections are insuffi - cient, then superuser privilege, if available for the credential, will also
- be considered.
RETURN VALUES
- vaccess_acl_posix1e() will return 0 on success, or a non-ze
- ro error value
on failure.
ERRORS
- [EACCES] Permission denied. An attempt was made
- to access a
- file in a way forbidden by its file ac
- cess permissions.
- [EPERM] Operation not permitted. An attempt was
- made to per
- form an operation limited to processes
- with appropriate privileges or to the owner of a file
- or other
resource.
SEE ALSO
vaccess(9), vnode(9), VOP_ACCESS(9)
AUTHORS
- This manual page and the current implementation of
- vaccess_acl_posix1e()
were written by Robert Watson.
BUGS
- This manual page should include a full description of the
- POSIX.1e ACL
evaluation algorithm, or cross reference another page that - does.
- BSD August 22, 2001