ACL(3) | Library Functions Manual | ACL(3) |
acl
— introduction
to the POSIX.1e ACL security API
Standard C Library (libc, -lc)
#include
<sys/types.h>
#include <sys/acl.h>
The system permits file systems to export Access Control Lists via the VFS, and provides a library for userland access to and manipulation of these ACLs. Not all file systems provide support for ACLs, and some may require that ACL support be explicitly enabled by the administrator. The library calls include routines to allocate, duplicate, retrieve, set, and validate ACLs associated with file objects.
This implementation of the POSIX.1e library differs from the standard in a number of non-portable ways in order to support the MacOS/Darwin ACL semantic. Where possible, these differences are implemented using the mechanisms provided in the standard for such extensions. Where routines are non-standard, they are suffixed with _np to indicate that they are not portable.
POSIX.1e describes a set of ACL manipulation routines to manage the contents of ACLs, as well as their relationships with files; almost all of these support routines are implemented.
Available functions, sorted by behavior, include:
acl_add_perm
()acl_clear_perms
()acl_copy_entry
()acl_create_entry
()acl_delete_entry
()acl_delete_perm
()acl_dup
()acl_free
()acl_from_text
()acl_get_entry
()acl_get_fd
(),
acl_get_fd_np
(),
acl_get_file
(),
acl_get_link_np
()acl_get_permset
()acl_get_qualifier
()acl_get_tag_type
()acl_init
()acl_set_fd
(),
acl_set_fd_np
(),
acl_set_file
(),
acl_set_link_np
()acl_set_permset
()acl_set_qualifier
()acl_set_tag_type
()acl_to_text
()acl_valid
(),
acl_valid_fd_np
(),
acl_valid_file_np
(),
acl_valid_link_np
()The syscalls between the internal interfaces and the public library routines may change over time, and as such are not documented. They are not intended to be called directly without going through the library.
ls(1), chmod(1), acl_add_perm(3), acl_clear_perms(3), acl_copy_entry(3), acl_create_entry(3), acl_delete_entry(3), acl_delete_perm(3), acl_dup(3), acl_free(3), acl_from_text(3), acl_get(3), acl_get_permset(3), acl_get_qualifier(3), acl_get_tag_type(3), acl_init(3), acl_set(3), acl_set_permset(3), acl_set_qualifier(3), acl_set_tag_type(3), acl_to_text(3), acl_valid(3), posix1e(3)
POSIX.1e assigns security labels to all objects, extending the security functionality described in POSIX.1. These additional labels provide fine-grained discretionary access control, fine-grained capabilities, and labels necessary for mandatory access control. POSIX.2c describes a set of userland utilities for manipulating these labels.
POSIX.1e is described in IEEE POSIX.1e draft 17.
This manpage is closely derived from the FreeBSD manpage by Robert N M Watson
Michael Smith
Robert N M Watson
December 18, 2002 | macOS 15.0 |