1*86d7f5d3SJohn Marino.\"- 2*86d7f5d3SJohn Marino.\" Copyright (c) 1999 Robert N. M. Watson 3*86d7f5d3SJohn Marino.\" All rights reserved. 4*86d7f5d3SJohn Marino.\" 5*86d7f5d3SJohn Marino.\" Redistribution and use in source and binary forms, with or without 6*86d7f5d3SJohn Marino.\" modification, are permitted provided that the following conditions 7*86d7f5d3SJohn Marino.\" are met: 8*86d7f5d3SJohn Marino.\" 1. Redistributions of source code must retain the above copyright 9*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer. 10*86d7f5d3SJohn Marino.\" 2. Redistributions in binary form must reproduce the above copyright 11*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer in the 12*86d7f5d3SJohn Marino.\" documentation and/or other materials provided with the distribution. 13*86d7f5d3SJohn Marino.\" 14*86d7f5d3SJohn Marino.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*86d7f5d3SJohn Marino.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*86d7f5d3SJohn Marino.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*86d7f5d3SJohn Marino.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*86d7f5d3SJohn Marino.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*86d7f5d3SJohn Marino.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*86d7f5d3SJohn Marino.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*86d7f5d3SJohn Marino.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*86d7f5d3SJohn Marino.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*86d7f5d3SJohn Marino.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*86d7f5d3SJohn Marino.\" SUCH DAMAGE. 25*86d7f5d3SJohn Marino.\" 26*86d7f5d3SJohn Marino.\" $FreeBSD: src/share/man/man9/VOP_ACLCHECK.9,v 1.1.2.3 2001/12/17 11:30:18 ru Exp $ 27*86d7f5d3SJohn Marino.\" 28*86d7f5d3SJohn Marino.Dd December 23, 1999 29*86d7f5d3SJohn Marino.Dt VOP_ACLCHECK 9 30*86d7f5d3SJohn Marino.Os 31*86d7f5d3SJohn Marino.Sh NAME 32*86d7f5d3SJohn Marino.Nm VOP_ACLCHECK 33*86d7f5d3SJohn Marino.Nd check an access control list for a vnode 34*86d7f5d3SJohn Marino.Sh SYNOPSIS 35*86d7f5d3SJohn Marino.In sys/param.h 36*86d7f5d3SJohn Marino.In sys/vnode.h 37*86d7f5d3SJohn Marino.In sys/acl.h 38*86d7f5d3SJohn Marino.Ft int 39*86d7f5d3SJohn Marino.Fn VOP_ACLCHECK "struct vnode *vp" "acl_type_t type" "struct acl *aclp" "struct ucred *cred" "struct proc *p" 40*86d7f5d3SJohn Marino.Sh DESCRIPTION 41*86d7f5d3SJohn MarinoThis vnode call may be used to determine the validity of a particular access 42*86d7f5d3SJohn Marinocontrol list (ACL) for a particular file or directory. 43*86d7f5d3SJohn Marino.Pp 44*86d7f5d3SJohn MarinoIts arguments are: 45*86d7f5d3SJohn Marino.Bl -tag -width type 46*86d7f5d3SJohn Marino.It Ar vp 47*86d7f5d3SJohn Marinothe vnode of the file or directory 48*86d7f5d3SJohn Marino.It Ar type 49*86d7f5d3SJohn Marinothe type of ACL to check 50*86d7f5d3SJohn Marino.It Ar aclp 51*86d7f5d3SJohn Marinoa pointer to an ACL structure from which to retrieve the ACL data 52*86d7f5d3SJohn Marino.It Ar cred 53*86d7f5d3SJohn Marinothe user credentials to use in authorizing the request 54*86d7f5d3SJohn Marino.It Ar p 55*86d7f5d3SJohn Marinothe process checking the ACL 56*86d7f5d3SJohn Marino.El 57*86d7f5d3SJohn Marino.Pp 58*86d7f5d3SJohn MarinoThe 59*86d7f5d3SJohn Marino.Fa cred 60*86d7f5d3SJohn Marinopointer may be NULL to indicate that access control checks are not to be 61*86d7f5d3SJohn Marinoperformed, if possible. This cred setting might be used to allow the 62*86d7f5d3SJohn Marinokernel to authorize ACL verification that the active process might not be 63*86d7f5d3SJohn Marinopermitted to do. 64*86d7f5d3SJohn Marino.Pp 65*86d7f5d3SJohn MarinoThe vnode ACL interface defines the syntax, and not semantics, of file and 66*86d7f5d3SJohn Marinodirectory ACL interfaces. More information about ACL management in kernel 67*86d7f5d3SJohn Marinomay be found in 68*86d7f5d3SJohn Marino.Xr acl 9 . 69*86d7f5d3SJohn Marino.Sh LOCKS 70*86d7f5d3SJohn MarinoNo locks are required to call this vnode method, and any locks held on 71*86d7f5d3SJohn Marinoentry will be held on exit. 72*86d7f5d3SJohn Marino.Sh RETURN VALUES 73*86d7f5d3SJohn MarinoIf the 74*86d7f5d3SJohn Marino.Fa aclp 75*86d7f5d3SJohn Marinopointer points to a valid ACL of type 76*86d7f5d3SJohn Marino.Fa type 77*86d7f5d3SJohn Marinofor the object 78*86d7f5d3SJohn Marino.Fa vp , 79*86d7f5d3SJohn Marinothen zero is returned. Otherwise, an appropriate error code is returned. 80*86d7f5d3SJohn Marino.Sh ERRORS 81*86d7f5d3SJohn Marino.Bl -tag -width Er 82*86d7f5d3SJohn Marino.It Bq Er EINVAL 83*86d7f5d3SJohn MarinoThe ACL type passed is invalid for this vnode, or the ACL data is invalid 84*86d7f5d3SJohn Marino.It Bq Er EACCES 85*86d7f5d3SJohn MarinoPermission denied 86*86d7f5d3SJohn Marino.It Bq Er ENOMEM 87*86d7f5d3SJohn MarinoInsufficient memory available to fulfill request 88*86d7f5d3SJohn Marino.It Bq Er EOPNOTSUPP 89*86d7f5d3SJohn MarinoThe file system does not support VOP_ACLCHECK 90*86d7f5d3SJohn Marino.El 91*86d7f5d3SJohn Marino.Sh SEE ALSO 92*86d7f5d3SJohn Marino.Xr acl 9 , 93*86d7f5d3SJohn Marino.Xr vnode 9 , 94*86d7f5d3SJohn Marino.Xr VOP_GETACL 9 , 95*86d7f5d3SJohn Marino.Xr VOP_SETACL 9 96*86d7f5d3SJohn Marino.Sh AUTHORS 97*86d7f5d3SJohn MarinoThis man page was written by 98*86d7f5d3SJohn Marino.An Robert Watson . 99