ACL\_SET\_FD(3) Library Functions Manual ACL\_SET\_FD(3)

# [NAME](#NAME)

`acl_set_fd` — set an ACL by file descriptor

# [LIBRARY](#LIBRARY)

Linux Access Control Lists library (libacl, -lacl).

# [SYNOPSIS](#SYNOPSIS)

`#include <sys/types.h>`  
`#include <sys/acl.h>`

`int`  
`acl_set_fd`(`int fd`, `acl_t acl`);

# [DESCRIPTION](#DESCRIPTION)

The [`acl_set_fd`](#acl_set_fd)() function associates an access ACL with the file referred to by `fd`.

The effective user ID of the process must match the owner of the file or the process must have the CAP\_FOWNER capability for the request to succeed.

# [RETURN VALUE](#RETURN_VALUE)

The `acl_set_fd`() 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](#ERRORS)

If any of the following conditions occur, the `acl_set_fd`() function returns the value `-1` and and sets `errno` to the corresponding value:

\[[`EBADF`](#EBADF)]

The `fd` argument is not a valid file descriptor.

\[[`EINVAL`](#EINVAL)]

The argument `acl` does not point to a valid ACL.

The ACL has more entries than the file referred to by `fd` can obtain.

\[[`ENOSPC`](#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.

\[[`ENOTSUP`](#ENOTSUP)]

The file identified by `fd` cannot be associated with the ACL because the file system on which the file is located does not support this.

\[[`EPERM`](#EPERM)]

The process does not have appropriate privilege to perform the operation to set the ACL.

\[[`EROFS`](#EROFS)]

This function requires modification of a file system which is currently read-only.

# [STANDARDS](#STANDARDS)

IEEE Std 1003.1e draft 17 (“POSIX.1e”, abandoned)

# [SEE ALSO](#SEE_ALSO)

[acl\_delete\_def\_file(3)](/man/os/acl/acl_delete_def_file.3), [acl\_get\_file(3)](/man/os/acl/acl_get_file.3), [acl\_set\_file(3)](/man/os/acl/acl_set_file.3), [acl\_valid(3)](/man/os/acl/acl_valid.3), [acl(5)](/man/os/acl/acl.5)

# [AUTHOR](#AUTHOR)

Derived from the FreeBSD manual pages written by Robert N M Watson ⟨rwatson@FreeBSD.org⟩, and adapted for Linux by Andreas Gruenbacher ⟨andreas.gruenbacher@gmail.com⟩.

March 23, 2002 Linux ACL

---

Document: acl_set_fd(3) from acl 2.4.0-r4 (Chainguard OS)
Source: https://git.savannah.nongnu.org/git/acl.git
