xref: /freebsd/lib/libc/posix1e/acl_from_text.3 (revision 97d186bc828e5282014db0ca87c0d272c5411c4c)
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_FROM_TEXT 3
30a889d1fbSRobert Watson.Os FreeBSD 4.0
31a889d1fbSRobert Watson.Sh NAME
32a889d1fbSRobert Watson.Nm acl_from_text
33a889d1fbSRobert Watson.Nd Create an ACL from text
34a889d1fbSRobert Watson.Sh SYNOPSIS
35a889d1fbSRobert Watson.Fd #include <sys/types.h>
36a889d1fbSRobert Watson.Fd #include <sys/acl.h>
3797d186bcSBruce Evans.Ft acl_t
38a889d1fbSRobert Watson.Fn acl_from_text "const char *buf_p"
39a889d1fbSRobert Watson.Sh DESCRIPTION
40a889d1fbSRobert WatsonThe
41a889d1fbSRobert Watson.Fn acl_from_text
42a889d1fbSRobert Watsonfunction converts the text form of an ACL referred to by
43a889d1fbSRobert Watson.Va buf_p
44a889d1fbSRobert Watsoninto the internal working structure for ACLs, appropriate for applying to
45a889d1fbSRobert Watsonfiles or manipulating.
46a889d1fbSRobert Watson
47a889d1fbSRobert WatsonThis function may cause memory to be allocated.  The caller should free any
48a889d1fbSRobert Watsonreleasable memory, when the new ACL is no longer required, by calling
49a889d1fbSRobert Watson.Xr acl_free 3
50a889d1fbSRobert Watsonwith the
51a889d1fbSRobert Watson.Va (void *)acl_t
52a889d1fbSRobert Watsonas an argument.
53a889d1fbSRobert Watson.Sh IMPLEMENTATION NOTES
54a889d1fbSRobert WatsonFreeBSD's support for POSIX.1e interfaces and features is still under
55a889d1fbSRobert Watsondevelopment at this time.
56a889d1fbSRobert Watson.Sh RETURN VALUES
57a889d1fbSRobert WatsonUpon successful completion, the function shall return a pointer to the
58a889d1fbSRobert Watsoninternal representation of the ACL in working storage.  Otherwise, a value
59a889d1fbSRobert Watsonof
60a889d1fbSRobert Watson.Va (acl_t)NULL
61a889d1fbSRobert Watsonshall be returned, and
62a889d1fbSRobert Watson.Va errno
63a889d1fbSRobert Watsonshall be set to indicate the error.
64a889d1fbSRobert Watson.Sh ERRORS
65a889d1fbSRobert WatsonIf any of the following conditions occur, the
66a889d1fbSRobert Watson.Fn acl_from_text
67a889d1fbSRobert Watsonfunction shall return a value of
68a889d1fbSRobert Watson.Va (acl_t)NULL
69a889d1fbSRobert Watsonand set
70a889d1fbSRobert Watson.Va errno
71a889d1fbSRobert Watsonto the corresponding value:
72a889d1fbSRobert Watson.Bl -tag -width Er
73a889d1fbSRobert Watson.It Bq Er EACCES
74a889d1fbSRobert WatsonSearch permission is denied for a component of the path prefix, or the
75a889d1fbSRobert Watsonobject exists and the process does not have appropriate access rights.
76a889d1fbSRobert Watson.It Bq Er EINVAL
77a889d1fbSRobert WatsonArgument
78a889d1fbSRobert Watson.Va buf_p
79a889d1fbSRobert Watsoncannot be translated into an ACL.
80a889d1fbSRobert Watson.It Bq Er ENOMEM
81a889d1fbSRobert WatsonThe ACL working storage requires more memory than is allowed by the
82a889d1fbSRobert Watsonhardware or system-imposed memory management constraints.
83a889d1fbSRobert Watson.El
84a889d1fbSRobert Watson.Sh SEE ALSO
85a889d1fbSRobert Watson.Xr acl 3 ,
86a889d1fbSRobert Watson.Xr acl_free 3 ,
87a889d1fbSRobert Watson.Xr acl_get 3 ,
88a889d1fbSRobert Watson.Xr acl_to_text 3 ,
89a889d1fbSRobert Watson.Xr posix1e 3
90a889d1fbSRobert Watson.Sh STANDARDS
91a889d1fbSRobert WatsonPOSIX.1e is described in IEEE POSIX.1e draft 17.  Discussion
92a889d1fbSRobert Watsonof the draft continues on the cross-platform POSIX.1e implementation
93c32381adSMike Pritchardmailing list.  To join this list, see the
94c32381adSMike Pritchard.Fx
95c32381adSMike PritchardPOSIX.1e implementation
96a889d1fbSRobert Watsonpage for more information.
97a889d1fbSRobert Watson.Sh HISTORY
98c32381adSMike PritchardPOSIX.1e support was introduced in
99c32381adSMike Pritchard.Fx 4.0 ,
100c32381adSMike Pritchardand development continues.
101a889d1fbSRobert Watson.Sh AUTHORS
102c32381adSMike Pritchard.An Robert N M Watson
103a889d1fbSRobert Watson.Sh BUGS
104a889d1fbSRobert WatsonThese features are not yet fully implemented.  In particular, the shipped
105a889d1fbSRobert Watsonversion of UFS/FFS does not support storage of additional security labels,
106a889d1fbSRobert Watsonand so is unable to (easily) provide support for most of these features.
107a889d1fbSRobert Watson
108a889d1fbSRobert Watson.Fn acl_from_text
109a889d1fbSRobert Watsonand
110a889d1fbSRobert Watson.Fn acl_to_text
111a889d1fbSRobert Watsonrely on the
112a889d1fbSRobert Watson.Xr getpwent 3
113a889d1fbSRobert Watsonlibrary calls to manage username and uid mapping, as well as the
114a889d1fbSRobert Watson.Xr getgrent 3
115a889d1fbSRobert Watsonlibrary calls to manage groupname and gid mapping.  These calls are not
116a889d1fbSRobert Watsonthread safe, and so transitively, neither are
117a889d1fbSRobert Watson.Fn acl_from_text
118a889d1fbSRobert Watsonand
119a889d1fbSRobert Watson.Fn acl_to_text .
120a889d1fbSRobert WatsonThese functions may also interfere with stateful
121a889d1fbSRobert Watsoncalls associated with the
122a889d1fbSRobert Watson.Fn getpwent
123a889d1fbSRobert Watsonand
124a889d1fbSRobert Watson.Fn getgrent
125a889d1fbSRobert Watsoncalls.
126