Sets AIXC ACL type access control information of a file.
Security Library (libc.a)
The acl_put and acl_fput subroutines set the access control information of a file system object. This information is contained in a buffer returned by a call to the acl_get or acl_fget subroutine. The structure of the data in this buffer is unspecified. However, the entire Access Control List (ACL) for a file cannot exceed one memory page (4096 bytes) in size. Note that acl_put/acl_fput operation could fail if the existing ACL associated with the file system object is of a different kind or if the underlying physical file system does not support AIXC ACL type. It is recommended that applications make use of aclx_put and aclx_fput subroutines to set the ACL instead of acl_put/acl_fput routines.
Item | Description |
---|---|
Path | Specifies the path name of a file. |
FileDescriptor | Specifies the file descriptor of an open file. |
Access | Specifies a pointer to the buffer containing the access control information. |
Free | Specifies whether the buffer space is to be deallocated.
The following values are valid:
|
On successful completion, the acl_put and acl_fput subroutines return a value of 0. Otherwise, -1 is returned and the errno global variable is set to indicate the error.
The acl_put subroutine fails and the access control information for a file remains unchanged if one or more of the following are true:
Item | Description |
---|---|
EACCES | Search permission is denied on a component of the Path prefix. |
EFAULT | The Path parameter points to a location outside of the allocated address space of the process. |
ELOOP | Too many symbolic links were encountered in translating the Path parameter. |
ENAMETOOLONG | A component of the Path parameter exceeded 255 characters, or the entire Path parameter exceeded 1023 characters. |
ENOENT | A component of the Path does not exist or has the disallow truncation attribute (see the ulimit subroutine). |
ENOENT | The Path parameter was null. |
ENOENT | A symbolic link was named, but the file to which it refers does not exist. |
ENOTDIR | A component of the Path prefix is not a directory. |
ESTALE | The process' root or current directory is located in a virtual file system that has been unmounted. |
The acl_fput subroutine fails and the file permissions remain unchanged if the following is true:
Item | Description |
---|---|
EBADF | The FileDescriptor parameter is not a valid file descriptor. |
The acl_put or acl_fput subroutine fails and the access control information for a file remains unchanged if one or more of the following are true:
Item | Description |
---|---|
EINVAL | The Access parameter does not point to a valid access control buffer. |
EINVAL | The Free parameter is not 0 or 1. |
EIO | An I/O error occurred during the operation. |
EROFS | The named file resides on a read-only file system. |
If Network File System (NFS) is installed on your system, the acl_put and acl_fput subroutines can also fail if the following is true:
Item | Description |
---|---|
ETIMEDOUT | The connection timed out. |
Access Control: The invoker must have search permission for all components of the Path prefix.
Auditing Events:
Item | Description |
---|---|
Event | Information |
chacl | Path |
fchacl | FileDescriptor |