acl_set(3)
NAME
- acl_set_fd, acl_set_fd_np, acl_set_file, acl_set_link_np
- set an ACL for
a file
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h> #include <sys/acl.h> int acl_set_fd(int fd, acl_t acl); int acl_set_fd_np(int fd, acl_t acl, acl_type_t type); int acl_set_file(const char *path_p, acl_type_t type, acl_t acl); int acl_set_link_np(const char *path_p, acl_type_t type, acl_t acl);
DESCRIPTION
- The acl_set_fd(), acl_set_fd_np(), acl_set_file(), and
- acl_set_link_np()
each associate an ACL with an object referred to by fd or - path_p. The
acl_set_fd_np() and acl_set_link_np() functions are not - POSIX.1e calls.
The acl_set_fd() function allows only the setting of ACLs of - type
ACL_TYPE_ACCESS where as acl_set_fd_np() allows the setting - of ACLs of
any type. The acl_set_link_np() function acts on a symlink - rather than
its target, if the target of the path is a symlink.
IMPLEMENTATION NOTES
- FreeBSD's support for POSIX.1e interfaces and features is
- still under
development at this time.
RETURN VALUES
- The function returns the value 0 if successful; otherwise
- the value -1 is
returned and the global variable errno is set to indicate - the error.
ERRORS
- If any of the following conditions occur, these functions
- shall return -1
and set errno to the corresponding value: - [EACCES] Search permission is denied for a compo
- nent of the
- path prefix, or the object exists and the
- process does
not have appropriate access rights. - [EBADF] The fd argument is not a valid file de
- scriptor.
- [EINVAL] Argument acl does not point to a valid
- ACL for this
- object, or the ACL type specified in type
- is invalid
for this object, or both. - [ENAMETOOLONG] A component of a pathname exceeded 255
- characters, or
- an entire path name exceeded 1023 charac
- ters.
- [ENOENT] The named object does not exist, or the
- path_p argu
- ment points to an empty string.
- [ENOMEM] Insufficient memory available to fulfill
- request.
- [ENOSPC] The directory or file system that would
- contain the
- new ACL cannot be extended, or the file
- system is out
of file allocation resources. - [EOPNOTSUPP] The file system does not support ACL re
- trieval.
- [EROFS] This function requires modification of a
- file system
- which is currently read-only.
SEE ALSO
acl(3), acl_delete(3), acl_get(3), acl_valid(3), posix1e(3)
STANDARDS
- 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.
HISTORY
- POSIX.1e support was introduced in FreeBSD 4.0, and develop
- ment continues.
AUTHORS
- Robert N M Watson
- BSD December 29, 2002