xref: /freebsd/lib/libc/posix1e/mac_get.3 (revision 33992dc0ed9323e5ba9d2d4a5b8dec5401a9c4e2)
1804613dcSRobert Watson.\" Copyright (c) 2001, 2004 Networks Associates Technology, Inc.
2d97fcfceSRobert Watson.\" All rights reserved.
3d97fcfceSRobert Watson.\"
4d97fcfceSRobert Watson.\" This software was developed for the FreeBSD Project by Chris
5d97fcfceSRobert Watson.\" Costello at Safeport Network Services and NAI Labs, the Security
6d97fcfceSRobert Watson.\" Research Division of Network Associates, Inc. under DARPA/SPAWAR
7d97fcfceSRobert Watson.\" contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS
8d97fcfceSRobert Watson.\" research program.
9d97fcfceSRobert Watson.\"
10d97fcfceSRobert Watson.\" Redistribution and use in source and binary forms, with or without
11d97fcfceSRobert Watson.\" modification, are permitted provided that the following conditions
12d97fcfceSRobert Watson.\" are met:
13d97fcfceSRobert Watson.\" 1. Redistributions of source code must retain the above copyright
14d97fcfceSRobert Watson.\"    notice, this list of conditions and the following disclaimer.
15d97fcfceSRobert Watson.\" 2. Redistributions in binary form must reproduce the above copyright
16d97fcfceSRobert Watson.\"    notice, this list of conditions and the following disclaimer in the
17d97fcfceSRobert Watson.\"    documentation and/or other materials provided with the distribution.
18d97fcfceSRobert Watson.\"
19d97fcfceSRobert Watson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
20d97fcfceSRobert Watson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21d97fcfceSRobert Watson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22d97fcfceSRobert Watson.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
23d97fcfceSRobert Watson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24d97fcfceSRobert Watson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25d97fcfceSRobert Watson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26d97fcfceSRobert Watson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27d97fcfceSRobert Watson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28d97fcfceSRobert Watson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29d97fcfceSRobert Watson.\" SUCH DAMAGE.
30d97fcfceSRobert Watson.\"
31d97fcfceSRobert Watson.\" $FreeBSD$
323b296920SRuslan Ermilov.\"
33d97fcfceSRobert Watson.Dd December 21, 2001
34d97fcfceSRobert Watson.Dt MAC_GET 3
35051bb54bSRuslan Ermilov.Os
36d97fcfceSRobert Watson.Sh NAME
37d97fcfceSRobert Watson.Nm mac_get_file ,
38804613dcSRobert Watson.Nm mac_get_link ,
39d97fcfceSRobert Watson.Nm mac_get_fd ,
4033992dc0SRuslan Ermilov.Nm mac_get_peer ,
4133992dc0SRuslan Ermilov.Nm mac_get_pid ,
42d97fcfceSRobert Watson.Nm mac_get_proc
43d97fcfceSRobert Watson.Nd get the label of a file, socket, socket peer or process
443b296920SRuslan Ermilov.Sh LIBRARY
453b296920SRuslan Ermilov.Lb libc
46d97fcfceSRobert Watson.Sh SYNOPSIS
47d97fcfceSRobert Watson.In sys/mac.h
4876a829fdSChris Costello.Ft int
4976a829fdSChris Costello.Fn mac_get_file "const char *path" "mac_t label"
5076a829fdSChris Costello.Ft int
51804613dcSRobert Watson.Fn mac_get_link "const char *path" "mac_t label"
52804613dcSRobert Watson.Ft int
5376a829fdSChris Costello.Fn mac_get_fd "int fd" "mac_t label"
5476a829fdSChris Costello.Ft int
55920325eeSRobert Watson.Fn mac_get_peer "int fd" "mac_t label"
56920325eeSRobert Watson.Ft int
5776a829fdSChris Costello.Fn mac_get_pid "pid_t pid" "mac_t label"
5876a829fdSChris Costello.Ft int
5976a829fdSChris Costello.Fn mac_get_proc "mac_t label"
60d97fcfceSRobert Watson.Sh DESCRIPTION
61d97fcfceSRobert WatsonThe
62d97fcfceSRobert Watson.Fn mac_get_file
63920325eeSRobert Watsonsystem call returns the label associated with a file specified by
64920325eeSRobert Watsonpathname.
65804613dcSRobert WatsonThe
66804613dcSRobert Watson.Fn mac_get_link
67804613dcSRobert Watsonfunction is the same as
68804613dcSRobert Watson.Fn mac_get_file ,
69804613dcSRobert Watsonexcept that it does not follow symlinks.
7076a829fdSChris Costello.Pp
71d97fcfceSRobert WatsonThe
72920325eeSRobert Watson.Fn mac_get_fd
73920325eeSRobert Watsonsystem call returns the label associated with an object referenced by
74920325eeSRobert Watsonthe specified file descriptor.
75920325eeSRobert WatsonNote that in the case of a file system socket, the label returned will
76920325eeSRobert Watsonbe the socket label, which may be different from the label of the
77920325eeSRobert Watsonon-disk node acting as a rendezvous for the socket.
78920325eeSRobert WatsonThe
79920325eeSRobert Watson.Fn mac_get_peer
80920325eeSRobert Watsonsystem call returns the label associated with the remote endpoint of
81920325eeSRobert Watsona socket; the exact semantics of this call will depend on the protocol
82920325eeSRobert Watsondomain, communications type, and endpoint; typically this label will
83920325eeSRobert Watsonbe cached when a connection-oriented protocol instance is first set up,
84920325eeSRobert Watsonand is undefined for datagram protocols.
85920325eeSRobert Watson.Pp
86920325eeSRobert WatsonThe
8776a829fdSChris Costello.Fn mac_get_pid
88920325eeSRobert Watsonand
89920325eeSRobert Watson.Fn mac_get_proc
90920325eeSRobert Watsonsystem calls return the process label associated with an arbitrary
9133992dc0SRuslan Ermilovprocess ID, or the current process.
92920325eeSRobert Watson.Pp
93920325eeSRobert WatsonLabel storage for use with these calls must first be allocated and
94920325eeSRobert Watsonprepared using the
95920325eeSRobert Watson.Xr mac_prepare 3
96920325eeSRobert Watsonfunctions.
97920325eeSRobert WatsonWhen an application is done using a label, the memory may be returned
98920325eeSRobert Watsonusing
99920325eeSRobert Watson.Xr mac_free 3 .
100d97fcfceSRobert Watson.Sh ERRORS
101d97fcfceSRobert Watson.Bl -tag -width Er
102d97fcfceSRobert Watson.It Bq Er EACCES
103d97fcfceSRobert WatsonA component of
10476a829fdSChris Costello.Fa path
105d97fcfceSRobert Watsonis not searchable,
106d97fcfceSRobert Watsonor MAC read access to the file
107d97fcfceSRobert Watsonis denied.
108920325eeSRobert Watson.It Bq Er EINVAL
109920325eeSRobert WatsonThe requested label operation is not valid for the object referenced by
110920325eeSRobert Watson.Fa fd .
111d97fcfceSRobert Watson.It Bq Er ENAMETOOLONG
112d97fcfceSRobert WatsonThe pathname pointed to by
11376a829fdSChris Costello.Fa path
114d97fcfceSRobert Watsonexceeds
115d97fcfceSRobert Watson.Dv PATH_MAX ,
116d97fcfceSRobert Watsonor a component of the pathname exceeds
117d97fcfceSRobert Watson.Dv NAME_MAX .
118d97fcfceSRobert Watson.It Bq Er ENOENT
119d97fcfceSRobert WatsonA component of
12076a829fdSChris Costello.Fa path
121d97fcfceSRobert Watsondoes not exist.
122d97fcfceSRobert Watson.It Bq Er ENOMEM
123d97fcfceSRobert WatsonInsufficient memory is available
124d97fcfceSRobert Watsonto allocate a new MAC label structure.
125d97fcfceSRobert Watson.It Bq Er ENOTDIR
126d97fcfceSRobert WatsonA component of
12776a829fdSChris Costello.Fa path
128d97fcfceSRobert Watsonis not a directory.
129d97fcfceSRobert Watson.El
130d97fcfceSRobert Watson.Sh SEE ALSO
131d97fcfceSRobert Watson.Xr mac 3 ,
132d97fcfceSRobert Watson.Xr mac_free 3 ,
13376a829fdSChris Costello.Xr mac_prepare 3 ,
1343b296920SRuslan Ermilov.Xr mac_set 3 ,
135a1de21c1SRuslan Ermilov.Xr mac_text 3 ,
1368f8690e7SChris Costello.Xr mac 4 ,
13776a829fdSChris Costello.Xr mac 9
138d97fcfceSRobert Watson.Sh STANDARDS
139d97fcfceSRobert WatsonPOSIX.1e is described in IEEE POSIX.1e draft 17.
140d97fcfceSRobert WatsonDiscussion of the draft
141d97fcfceSRobert Watsoncontinues on the cross-platform POSIX.1e implementation mailing list.
142d97fcfceSRobert WatsonTo join this list, see the
143d97fcfceSRobert Watson.Fx
144d97fcfceSRobert WatsonPOSIX.1e implementation page
145d97fcfceSRobert Watsonfor more information.
14609a7f448SRobert Watson.Sh HISTORY
14709a7f448SRobert WatsonSupport for Mandatory Access Control was introduced in
14809a7f448SRobert Watson.Fx 5.0
14909a7f448SRobert Watsonas part of the
15009a7f448SRobert Watson.Tn TrustedBSD
15109a7f448SRobert WatsonProject.
152