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
libc

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_EXTENDED 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.

RETURN VALUES

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 component 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 descriptor.

[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 characters.

[ENOENT]
    The named object does not exist, or the path_p argument 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 retrieval.

[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.

AUTHORS
Michael Smith Robert N M Watson