1a889d1fbSRobert Watson.\"- 2a889d1fbSRobert Watson.\" Copyright (c) 2000 Robert N. M. Watson 3a889d1fbSRobert Watson.\" All rights reserved. 4a889d1fbSRobert Watson.\" 5a889d1fbSRobert Watson.\" Redistribution and use in source and binary forms, with or without 6a889d1fbSRobert Watson.\" modification, are permitted provided that the following conditions 7a889d1fbSRobert Watson.\" are met: 8a889d1fbSRobert Watson.\" 1. Redistributions of source code must retain the above copyright 9a889d1fbSRobert Watson.\" notice, this list of conditions and the following disclaimer. 10a889d1fbSRobert Watson.\" 2. Redistributions in binary form must reproduce the above copyright 11a889d1fbSRobert Watson.\" notice, this list of conditions and the following disclaimer in the 12a889d1fbSRobert Watson.\" documentation and/or other materials provided with the distribution. 13a889d1fbSRobert Watson.\" 14a889d1fbSRobert Watson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15a889d1fbSRobert Watson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16a889d1fbSRobert Watson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17a889d1fbSRobert Watson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18a889d1fbSRobert Watson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19a889d1fbSRobert Watson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20a889d1fbSRobert Watson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21a889d1fbSRobert Watson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22a889d1fbSRobert Watson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23a889d1fbSRobert Watson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24a889d1fbSRobert Watson.\" SUCH DAMAGE. 25a889d1fbSRobert Watson.\" 26a889d1fbSRobert Watson.\" $FreeBSD$ 27a889d1fbSRobert Watson.\" 28a889d1fbSRobert Watson.Dd January 28, 2000 29a889d1fbSRobert Watson.Dt ACL_SET 3 30a889d1fbSRobert Watson.Os FreeBSD 4.0 31a889d1fbSRobert Watson.Sh NAME 32a889d1fbSRobert Watson.Fd int 33a889d1fbSRobert Watson.Nm acl_set_file , 34a889d1fbSRobert Watson.Nm acl_set_fd , 35a889d1fbSRobert Watson.Nm acl_set_fd_np 36a889d1fbSRobert Watson.Nd Get an ACL for a file 37a889d1fbSRobert Watson.Sh SYNOPSIS 38a889d1fbSRobert Watson.Fd #include <sys/types.h> 39a889d1fbSRobert Watson.Fd #include <sys/acl.h> 40a889d1fbSRobert Watson.Ft int 41a889d1fbSRobert Watson.Fn acl_set_file "const char *path_p" "acl_type_t type" "acl_t acl" 42a889d1fbSRobert Watson.Ft int 43a889d1fbSRobert Watson.Fn acl_set_fd "int fd" "acl_t acl" 44a889d1fbSRobert Watson.Ft int 45a889d1fbSRobert Watson.Fn acl_set_fd_np "int fd" "acl_t acl" "acl_type_t type" 46a889d1fbSRobert Watson.Sh DESCRIPTION 47a889d1fbSRobert WatsonThe 48a889d1fbSRobert Watson.Fn acl_set_file , 49a889d1fbSRobert Watson.Fn acl_set_fd , 50a889d1fbSRobert Watsonand 51a889d1fbSRobert Watson.Fn acl_set_fd_np 52a889d1fbSRobert Watsoneach associate an ACL with an object referred to by 53a889d1fbSRobert Watson.Va fd 54a889d1fbSRobert Watsonor 55a889d1fbSRobert Watson.Va path_p . 56a889d1fbSRobert WatsonAll except 57a889d1fbSRobert Watson.Fn acl_set_fd_np 58a889d1fbSRobert Watsonare POSIX.1e calls-- 59a889d1fbSRobert Watson.Fn acl_set_fd 60a889d1fbSRobert Watsonallows only the setting of ACLs of type ACL_TYPE_ACCESS 61a889d1fbSRobert Watsonwhere as 62a889d1fbSRobert Watson.Fn acl_set_fd_np 63a889d1fbSRobert Watsonallows the setting of ACLs of any type. 64a889d1fbSRobert Watson.Sh IMPLEMENTATION NOTES 65a889d1fbSRobert WatsonFreeBSD's support for POSIX.1e interfaces and features is still under 66a889d1fbSRobert Watsondevelopment at this time. 67a889d1fbSRobert Watson.Sh RETURN VALUES 68a889d1fbSRobert WatsonUpon successfull completion, the function shall return a value of zero. 69a889d1fbSRobert WatsonOtherwise, a value of -1 shall be returned and 70a889d1fbSRobert Watson.Va errno 71a889d1fbSRobert Watsonshall be set to indicate the error. 72a889d1fbSRobert Watson.Sh ERRORS 73a889d1fbSRobert WatsonIf any of the following conditions occur, these functions shall return 74a889d1fbSRobert Watson-1 and set 75a889d1fbSRobert Watson.Va errno 76a889d1fbSRobert Watsonto the corresponding value: 77a889d1fbSRobert Watson.Bl -tag -width Er 78a889d1fbSRobert Watson.It Bq Er EACCES 79a889d1fbSRobert WatsonSearch permission is denied for a component of the path prefix, or the 80a889d1fbSRobert Watsonobject exists and the process does not have appropriate access rights. 81a889d1fbSRobert Watson.It Bq Er EBADF 82a889d1fbSRobert WatsonThe 83a889d1fbSRobert Watson.Va fd 84a889d1fbSRobert Watsonargument is not a valid file descriptor. 85a889d1fbSRobert Watson.It Bq Er EINVAL 86a889d1fbSRobert WatsonArgument 87a889d1fbSRobert Watson.Va acl 88a889d1fbSRobert Watsondoes not point to a valid ACL for this object, or the ACL type 89a889d1fbSRobert Watsonspecified in 90a889d1fbSRobert Watson.Va type 91a889d1fbSRobert Watsonis invalid for this object, or both. 92a889d1fbSRobert Watson.It Bq Er ENAMETOOLONG 93a889d1fbSRobert WatsonA component of a pathname exceeded 255 characters, or an 94a889d1fbSRobert Watsonentire path name exceeded 1023 characters. 95a889d1fbSRobert Watson.It Bq Er ENOENT 96a889d1fbSRobert WatsonThe named object does not exist, or the 97a889d1fbSRobert Watson.Va path_p 98a889d1fbSRobert Watsonargument points to an empty string. 99a889d1fbSRobert Watson.It Bq Er ENOMEM 100a889d1fbSRobert WatsonInsufficient memory available to fulfill request. 101a889d1fbSRobert Watson.It Bq Er ENOSPC 102a889d1fbSRobert WatsonThe directory or file system that would contain the new ACL cannot be 103a889d1fbSRobert Watsonextended, or the file system is out of file allocation resources. 104a889d1fbSRobert Watson.It Bq Er EOPNOTSUPP 105a889d1fbSRobert WatsonThe file system does not support ACL retrieval. 106a889d1fbSRobert Watson.It Bq Er EROFS 107a889d1fbSRobert WatsonThis function requires modification of a file system which is currently 108a889d1fbSRobert Watsonread-only. 109a889d1fbSRobert Watson.El 110a889d1fbSRobert Watson.Sh SEE ALSO 111a889d1fbSRobert Watson.Xr acl 3 , 112a889d1fbSRobert Watson.Xr acl_delete 3 , 113a889d1fbSRobert Watson.Xr acl_get 3 , 114a889d1fbSRobert Watson.Xr acl_valid 3 , 115a889d1fbSRobert Watson.Xr posix1e 3 116a889d1fbSRobert Watson.Sh STANDARDS 117a889d1fbSRobert WatsonPOSIX.1e is described in IEEE POSIX.1e draft 17. Discussion 118a889d1fbSRobert Watsonof the draft continues on the cross-platform POSIX.1e implementation 119a889d1fbSRobert Watsonmailing list. To join this list, see the FreeBSD POSIX.1e implementation 120a889d1fbSRobert Watsonpage for more information. 121a889d1fbSRobert Watson.Sh HISTORY 122a889d1fbSRobert WatsonPOSIX.1e support was introduced in FreeBSD 4.0, and development continues. 123a889d1fbSRobert Watson.Sh AUTHORS 124a889d1fbSRobert WatsonRobert N M Watson 125a889d1fbSRobert Watson.Sh BUGS 126a889d1fbSRobert WatsonThese features are not yet fully implemented. In particular, the shipped 127a889d1fbSRobert Watsonversion of UFS/FFS does not support storage of additional security labels, 128a889d1fbSRobert Watsonand so is unable to (easily) provide support for most of these features. 129