1d97fcfceSRobert Watson.\" Copyright (c) 2001 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.\" 3. The name of the author may not be used to endorse or promote 19d97fcfceSRobert Watson.\" products derived from this software without specific prior written 20d97fcfceSRobert Watson.\" permission. 21d97fcfceSRobert Watson.\" 22d97fcfceSRobert Watson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 23d97fcfceSRobert Watson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24d97fcfceSRobert Watson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25d97fcfceSRobert Watson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 26d97fcfceSRobert Watson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27d97fcfceSRobert Watson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28d97fcfceSRobert Watson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29d97fcfceSRobert Watson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30d97fcfceSRobert Watson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31d97fcfceSRobert Watson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32d97fcfceSRobert Watson.\" SUCH DAMAGE. 33d97fcfceSRobert Watson.\" 34d97fcfceSRobert Watson.\" $FreeBSD$ 35d97fcfceSRobert Watson.Dd December 21, 2001 36d97fcfceSRobert Watson.Dt MAC_SET 3 37d97fcfceSRobert Watson.Sh NAME 38d97fcfceSRobert Watson.Nm mac_set_file , 39d97fcfceSRobert Watson.Nm mac_set_fd , 40d97fcfceSRobert Watson.Nm mac_set_proc 41d97fcfceSRobert Watson.Nd set the MAC label for a file or process 42d97fcfceSRobert Watson.Sh LIBRARY 43d97fcfceSRobert Watson.Lb libc 44d97fcfceSRobert Watson.Sh SYNOPSIS 45d97fcfceSRobert Watson.In sys/mac.h 46d97fcfceSRobert Watson.Ft int 47d97fcfceSRobert Watson.Fn mac_set_file "const char *path_p" "mac_t label" 48d97fcfceSRobert Watson.Ft int 49d97fcfceSRobert Watson.Fn mac_set_fd "int fd" "mac_t label" 50d97fcfceSRobert Watson.Ft int 51d97fcfceSRobert Watson.Fn mac_set_proc "mac_t label" 52d97fcfceSRobert Watson.Sh DESCRIPTION 53d97fcfceSRobert WatsonThe 54d97fcfceSRobert Watson.Fn mac_set_file 55d97fcfceSRobert Watsonand 56d97fcfceSRobert Watson.Fn mac_set_fd 57d97fcfceSRobert Watsonfunctions associate a MAC label 58d97fcfceSRobert Watsonspecified by 59d97fcfceSRobert Watson.Fa label 60d97fcfceSRobert Watsonto the file referenced to by 61d97fcfceSRobert Watson.Fa path_p , 62d97fcfceSRobert Watsonor to the file descriptor 63d97fcfceSRobert Watson.Fa fd , 64d97fcfceSRobert Watsonrespectively. Note this function will 65d97fcfceSRobert Watsonfail on socket descriptors. For information on 66d97fcfceSRobert Watsonsetting MAC labels on socket descriptors see 67d97fcfceSRobert Watson.Xr setsockopt 2 . 68d97fcfceSRobert WatsonThe 69d97fcfceSRobert Watson.Fn mac_set_proc 70d97fcfceSRobert Watsonfunction associates the MAC label 71d97fcfceSRobert Watsonspecified by 72d97fcfceSRobert Watson.Fa label 73d97fcfceSRobert Watsonto the calling process. 74d97fcfceSRobert Watson.Pp 75d97fcfceSRobert WatsonA process is allowed to set a label for a file 76d97fcfceSRobert Watsononly if it has MAC write access to the file, 77d97fcfceSRobert Watsonand its effective user id is equal to 78d97fcfceSRobert Watsonthe owner of the file, 79d97fcfceSRobert Watsonor has appropriate privileges. 80d97fcfceSRobert Watson.Sh RETURN VALUES 81d97fcfceSRobert Watson.Rv -std mac_set_fd mac_set_file mac_set_proc 82d97fcfceSRobert Watson.Sh ERRORS 83d97fcfceSRobert Watson.Bl -tag -width Er 84d97fcfceSRobert Watson.It Bq Er EACCES 85d97fcfceSRobert WatsonMAC write access to the file is denied. 86d97fcfceSRobert Watson.It Bq Er EBADF 87d97fcfceSRobert Watson.Fa fd 88d97fcfceSRobert Watsonis not a valid file descriptor. 89d97fcfceSRobert Watson.It Bq Er EINVAL 90d97fcfceSRobert Watson.Fa label 91d97fcfceSRobert Watsonis not a valid MAC label. 92d97fcfceSRobert Watson.It Bq Er EOPNOTSUPP 93d97fcfceSRobert WatsonSetting MAC labels is not supported 94d97fcfceSRobert Watsonby the file referenced by 95d97fcfceSRobert Watson.Fa fd . 96d97fcfceSRobert Watson.It Bq Er EPERM 97d97fcfceSRobert WatsonThe calling process had insufficient privelege 98d97fcfceSRobert Watsonto change the MAC label. 99d97fcfceSRobert Watson.It Bq Er EROFS 100d97fcfceSRobert WatsonFile system for the object being modified 101d97fcfceSRobert Watsonis read only. 102d97fcfceSRobert Watson.It Bq Er ENAMETOOLONG 103d97fcfceSRobert Watson.\" XXX POSIX_NO_TRUNC? 104d97fcfceSRobert WatsonThe length of the pathname in 105d97fcfceSRobert Watson.Fa path_p 106d97fcfceSRobert Watsonexceeds 107d97fcfceSRobert Watson.Dv PATH_MAX , 108d97fcfceSRobert Watsonor a component of the pathname 109d97fcfceSRobert Watsonis longer than 110d97fcfceSRobert Watson.Dv NAME_MAX . 111d97fcfceSRobert Watson.It Bq Er ENOENT 112d97fcfceSRobert WatsonThe file referenced by 113d97fcfceSRobert Watson.Fa path_p 114d97fcfceSRobert Watsondoes not exist. 115d97fcfceSRobert Watson.It Bq Er ENOTDIR 116d97fcfceSRobert WatsonA component of the pathname 117d97fcfceSRobert Watsonreferenced by 118d97fcfceSRobert Watson.Fa path_p 119d97fcfceSRobert Watsonis not a directory. 120d97fcfceSRobert Watson.Sh SEE_ALSO 121d97fcfceSRobert Watson.Xr mac 3 , 122d97fcfceSRobert Watson.Xr mac_free 3 , 123d97fcfceSRobert Watson.Xr mac_text 3 , 124d97fcfceSRobert Watson.Xr mac_get 3 125