Blame man/man3/acl_extended_file.3

rpm-build 0a0c83
.\" Access Control Lists manual pages
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.\" (C) 2002 Andreas Gruenbacher, <a.gruenbacher@bestbits.at>
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.\" This is free documentation; you can redistribute it and/or
rpm-build 0a0c83
.\" modify it under the terms of the GNU General Public License as
rpm-build 0a0c83
.\" published by the Free Software Foundation; either version 2 of
rpm-build 0a0c83
.\" the License, or (at your option) any later version.
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.\" The GNU General Public License's references to "object code"
rpm-build 0a0c83
.\" and "executables" are to be interpreted as the output of any
rpm-build 0a0c83
.\" document formatting or typesetting system, including
rpm-build 0a0c83
.\" intermediate and printed output.
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.\" This manual is distributed in the hope that it will be useful,
rpm-build 0a0c83
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
rpm-build 0a0c83
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
rpm-build 0a0c83
.\" GNU General Public License for more details.
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.\" You should have received a copy of the GNU General Public
rpm-build 0a0c83
.\" License along with this manual.  If not, see
rpm-build 0a0c83
.\" <http://www.gnu.org/licenses/>.
rpm-build 0a0c83
.\"
rpm-build 0a0c83
.Dd March 23, 2002
rpm-build 0a0c83
.Dt ACL_EXTENDED_FILE 3
rpm-build 0a0c83
.Os "Linux ACL"
rpm-build 0a0c83
.Sh NAME
rpm-build 0a0c83
.Nm acl_extended_file, acl_extended_file_nofollow
rpm-build 0a0c83
.Nd test for information in ACLs by file name
rpm-build 0a0c83
.Sh LIBRARY
rpm-build 0a0c83
Linux Access Control Lists library (libacl, \-lacl).
rpm-build 0a0c83
.Sh SYNOPSIS
rpm-build 0a0c83
.In sys/types.h
rpm-build 0a0c83
.In acl/libacl.h
rpm-build 0a0c83
.Ft int
rpm-build 0a0c83
.Fn acl_extended_file "const char *path_p"
rpm-build 0a0c83
.Ft int
rpm-build 0a0c83
.Fn acl_extended_file_nofollow "const char *path_p"
rpm-build 0a0c83
.Sh DESCRIPTION
rpm-build 0a0c83
The
rpm-build 0a0c83
.Fn acl_extended_file
rpm-build 0a0c83
function returns
rpm-build 0a0c83
.Li 1
rpm-build 0a0c83
if the file or directory referred to by the argument
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
is associated with an extended access ACL, or if the directory referred to by
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
is associated with a default ACL. The function returns
rpm-build 0a0c83
.Li 0
rpm-build 0a0c83
if the file has neither an extended access ACL nor a default ACL.
rpm-build 0a0c83
.Pp
rpm-build 0a0c83
An extended ACL is an ACL that contains entries other than the three
rpm-build 0a0c83
required entries of tag types ACL_USER_OBJ, ACL_GROUP_OBJ and ACL_OTHER.
rpm-build 0a0c83
If the result of the
rpm-build 0a0c83
.Fn acl_extended_file
rpm-build 0a0c83
function for a file object is
rpm-build 0a0c83
.Li 0 ,
rpm-build 0a0c83
then ACLs define no discretionary access rights other than those
rpm-build 0a0c83
already defined by the traditional file permission bits.
rpm-build 0a0c83
.Pp
rpm-build 0a0c83
Access to the file object may be further restricted by other
rpm-build 0a0c83
mechanisms, such as Mandatory Access Control schemes. The
rpm-build 0a0c83
.Xr access 2
rpm-build 0a0c83
system call can be used to check whether a given type of access to a file
rpm-build 0a0c83
object would be granted.
rpm-build 0a0c83
.Pp
rpm-build 0a0c83
.Fn acl_extended_file_nofollow
rpm-build 0a0c83
is identical to
rpm-build 0a0c83
.Fn acl_extended_file ,
rpm-build 0a0c83
except in the case of a symbolic link, where the link itself is interrogated,
rpm-build 0a0c83
not the file that it refers to.  Since symbolic links have no ACL themselves,
rpm-build 0a0c83
the operation is supposed to fail on them.
rpm-build 0a0c83
.Sh RETURN VALUE
rpm-build 0a0c83
If successful, the
rpm-build 0a0c83
.Fn acl_extended_file
rpm-build 0a0c83
function returns
rpm-build 0a0c83
.Li 1
rpm-build 0a0c83
if the file object referred to by
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
has an extended access ACL or a default ACL, and
rpm-build 0a0c83
.Li 0
rpm-build 0a0c83
if the file object referred to by
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
has neither an extended access ACL nor a default ACL. Otherwise, the value
rpm-build 0a0c83
.Li -1
rpm-build 0a0c83
is returned and the global variable
rpm-build 0a0c83
.Va errno
rpm-build 0a0c83
is set to indicate the error.
rpm-build 0a0c83
.Sh ERRORS
rpm-build 0a0c83
If any of the following conditions occur, the
rpm-build 0a0c83
.Fn acl_extended_file
rpm-build 0a0c83
function returns
rpm-build 0a0c83
.Li -1
rpm-build 0a0c83
and sets
rpm-build 0a0c83
.Va errno
rpm-build 0a0c83
to the corresponding value:
rpm-build 0a0c83
.Bl -tag -width Er
rpm-build 0a0c83
.It Bq Er EACCES
rpm-build 0a0c83
Search permission is denied for a component of the path prefix.
rpm-build 0a0c83
.It Bq Er ENAMETOOLONG
rpm-build 0a0c83
The length of the argument
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
is too long.
rpm-build 0a0c83
.It Bq Er ENOENT
rpm-build 0a0c83
The named object does not exist or the argument
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
points to an empty string.
rpm-build 0a0c83
.It Bq Er ENOTDIR
rpm-build 0a0c83
A component of the path prefix is not a directory.
rpm-build 0a0c83
.It Bq Er ENOTSUP
rpm-build 0a0c83
The file system on which the file identified by
rpm-build 0a0c83
.Va path_p
rpm-build 0a0c83
is located does not support ACLs, or ACLs are disabled.
rpm-build 0a0c83
.El
rpm-build 0a0c83
.Sh STANDARDS
rpm-build 0a0c83
This is a non-portable, Linux specific extension to the ACL manipulation
rpm-build 0a0c83
functions defined in IEEE Std 1003.1e draft 17 (\(lqPOSIX.1e\(rq, abandoned).
rpm-build 0a0c83
.Sh SEE ALSO
rpm-build 0a0c83
.Xr access 2 ,
rpm-build 0a0c83
.Xr acl_get_file 3 ,
rpm-build 0a0c83
.Xr acl 5
rpm-build 0a0c83
.Sh AUTHOR
rpm-build 0a0c83
Written by
rpm-build 0a0c83
.An "Andreas Gruenbacher" Aq a.gruenbacher@bestbits.at .