.\" Access Control Lists manual pages
.\"
.\" (C) 2002 Andreas Gruenbacher, <a.gruenbacher@bestbits.at>
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual.  If not, see
.\" <http://www.gnu.org/licenses/>.
.\"
.Dd March 23, 2002
.Dt ACL_SET_FD 3
.Os "Linux ACL"
.Sh NAME
.Nm acl_set_fd
.Nd set an ACL by file descriptor
.Sh LIBRARY
Linux Access Control Lists library (libacl, \-lacl).
.Sh SYNOPSIS
.In sys/types.h
.In sys/acl.h
.Ft int
.Fn acl_set_fd "int fd" "acl_t acl"
.Sh DESCRIPTION
The
.Fn acl_set_fd
function associates an access ACL with the file referred to by
.Va fd .
.Pp
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.
.Sh RETURN VALUE
.Rv -std acl_set_fd
.Sh ERRORS
If any of the following conditions occur, the
.Fn acl_set_fd
function returns the value
.Li -1
and and sets
.Va errno
to the corresponding value:
.Bl -tag -width Er
.It Bq Er EBADF
The
.Va fd
argument is not a valid file descriptor.
.It Bq Er EINVAL
The argument
.Va acl
does not point to a valid ACL.
.Pp
The ACL has more entries than the file referred to by
.Va fd
can obtain.
.It Bq Er 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.
.It Bq Er ENOTSUP
The file identified by
.Va fd 
cannot be associated with the ACL because the file system on which the file
is located does not support this.
.It Bq Er EPERM
The process does not have appropriate privilege to perform the operation to set the ACL.
.It Bq Er EROFS
This function requires modification of a file system which is currently read-only.
.El
.Sh STANDARDS
IEEE Std 1003.1e draft 17 (\(lqPOSIX.1e\(rq, abandoned)
.Sh SEE ALSO
.Xr acl_delete_def_file 3 ,
.Xr acl_get_file 3 ,
.Xr acl_set_file 3 ,
.Xr acl_valid 3 ,
.Xr acl 5
.Sh AUTHOR
Derived from the FreeBSD manual pages written by
.An "Robert N M Watson" Aq rwatson@FreeBSD.org ,
and adapted for Linux by
.An "Andreas Gruenbacher" Aq a.gruenbacher@bestbits.at .
