1.\" Copyright (c) 2001 Networks Associates Technology, Inc. 2.\" All rights reserved. 3.\" 4.\" This software was developed for the FreeBSD Project by Chris 5.\" Costello at Safeport Network Services and NAI Labs, the Security 6.\" Research Division of Network Associates, Inc. under DARPA/SPAWAR 7.\" contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS 8.\" research program. 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice, this list of conditions and the following disclaimer. 15.\" 2. Redistributions in binary form must reproduce the above copyright 16.\" notice, this list of conditions and the following disclaimer in the 17.\" documentation and/or other materials provided with the distribution. 18.\" 3. The name of the author may not be used to endorse or promote 19.\" products derived from this software without specific prior written 20.\" permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" $FreeBSD$ 35.Dd December 21, 2001 36.Dt MAC_SET 3 37.Sh NAME 38.Nm mac_set_file , 39.Nm mac_set_fd , 40.Nm mac_set_proc 41.Nd set the MAC label for a file or process 42.Sh LIBRARY 43.Lb libc 44.Sh SYNOPSIS 45.In sys/mac.h 46.Ft int 47.Fn mac_set_file "const char *path_p" "mac_t label" 48.Ft int 49.Fn mac_set_fd "int fd" "mac_t label" 50.Ft int 51.Fn mac_set_proc "mac_t label" 52.Sh DESCRIPTION 53The 54.Fn mac_set_file 55and 56.Fn mac_set_fd 57functions associate a MAC label 58specified by 59.Fa label 60to the file referenced to by 61.Fa path_p , 62or to the file descriptor 63.Fa fd , 64respectively. Note this function will 65fail on socket descriptors. For information on 66setting MAC labels on socket descriptors see 67.Xr setsockopt 2 . 68The 69.Fn mac_set_proc 70function associates the MAC label 71specified by 72.Fa label 73to the calling process. 74.Pp 75A process is allowed to set a label for a file 76only if it has MAC write access to the file, 77and its effective user id is equal to 78the owner of the file, 79or has appropriate privileges. 80.Sh RETURN VALUES 81.Rv -std mac_set_fd mac_set_file mac_set_proc 82.Sh ERRORS 83.Bl -tag -width Er 84.It Bq Er EACCES 85MAC write access to the file is denied. 86.It Bq Er EBADF 87.Fa fd 88is not a valid file descriptor. 89.It Bq Er EINVAL 90.Fa label 91is not a valid MAC label. 92.It Bq Er EOPNOTSUPP 93Setting MAC labels is not supported 94by the file referenced by 95.Fa fd . 96.It Bq Er EPERM 97The calling process had insufficient privelege 98to change the MAC label. 99.It Bq Er EROFS 100File system for the object being modified 101is read only. 102.It Bq Er ENAMETOOLONG 103.\" XXX POSIX_NO_TRUNC? 104The length of the pathname in 105.Fa path_p 106exceeds 107.Dv PATH_MAX , 108or a component of the pathname 109is longer than 110.Dv NAME_MAX . 111.It Bq Er ENOENT 112The file referenced by 113.Fa path_p 114does not exist. 115.It Bq Er ENOTDIR 116A component of the pathname 117referenced by 118.Fa path_p 119is not a directory. 120.Sh SEE_ALSO 121.Xr mac 3 , 122.Xr mac_free 3 , 123.Xr mac_text 3 , 124.Xr mac_get 3 125