ACL(3) | MidnightBSD Library Functions Manual | ACL(3) |
acl
— introduction
to the POSIX.1e/NFSv4 ACL security API
Standard C Library (libc, -lc)
#include
<sys/types.h>
#include <sys/acl.h>
FreeBSD permits file systems to export Access Control Lists via the VFS, and provides a library for userland access to and manipulation of these ACLs. FreeBSD supports POSIX.1e and NFSv4 ACLs, but 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. As well as the POSIX.1e routines, there are a number of non-portable extensions defined that allow for ACL semantics alternative to POSIX.1e, such as NFSv4. 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 in FreeBSD.
Available functions, sorted by behavior, include:
acl_add_flag_np
()acl_add_perm
()acl_calc_mask
()ACL_MASK
entry.acl_clear_flags_np
()acl_clear_perms
()acl_copy_entry
()acl_create_entry
(),
acl_create_entry_np
()acl_delete_def_file
(),
acl_delete_def_link_np
(),
acl_delete_fd_np
(),
acl_delete_file_np
(),
acl_delete_link_np
()acl_delete_entry
(),
acl_delete_entry_np
(),acl_delete_flag_np
()acl_delete_perm
()acl_dup
()acl_free
()acl_from_text
()acl_get_brand_np
()acl_get_entry
()acl_get_fd
(),
acl_get_fd_np
(),
acl_get_file
(),
acl_get_link_np
()acl_get_entry_type_np
()acl_get_flagset_np
()acl_get_permset
()acl_get_qualifier
()acl_get_tag_type
()acl_init
()acl_is_trivial_np
()acl_set_fd
(),
acl_set_fd_np
(),
acl_set_file
(),
acl_set_link_np
()acl_set_entry_type_np
()acl_set_flagset_np
()acl_set_permset
()acl_set_qualifier
()acl_set_tag_type
()acl_strip_np
()acl_to_text
(),
acl_to_text_np
()acl_valid
(),
acl_valid_fd_np
(),
acl_valid_file_np
(),
acl_valid_link_np
()Documentation of the internal kernel interfaces backing these calls may be found in acl(9). 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.
getfacl(1), setfacl(1), acl_add_flag_np(3), acl_add_perm(3), acl_calc_mask(3), acl_clear_flags_np(3), acl_clear_perms(3), acl_copy_entry(3), acl_create_entry(3), acl_delete_entry(3), acl_delete_flag_np(3), acl_delete_perm(3), acl_dup(3), acl_free(3), acl_from_text(3), acl_get(3), acl_get_brand_np(3), acl_get_entry_type_np(3), acl_get_flagset_np(3), acl_get_permset(3), acl_get_qualifier(3), acl_get_tag_type(3), acl_init(3), acl_is_trivial_np(3), acl_set(3), acl_set_entry_type_np(3), acl_set_flagset_np(3), acl_set_permset(3), acl_set_qualifier(3), acl_set_tag_type(3), acl_strip_np(3), acl_to_text(3), acl_valid(3), posix1e(3), acl(9)
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. Discussion of the draft continues on the cross-platform POSIX.1e implementation mailing list. To join this list, see the FreeBSD POSIX.1e implementation page for more information.
POSIX.1e support was introduced in FreeBSD 4.0; FreeBSD 5.0 was the first version to include a complete ACL implementation based on extended attributes for the UFS and UFS2 file systems. NFSv4 ACL support was introduced in FreeBSD 8.0.
The getfacl(1) and setfacl(1) utilities describe the user tools that permit direct manipulation of complete file ACLs.
Robert N M Watson
October 30, 2014 | midnightbsd-3.1 |