1*86d7f5d3SJohn Marino.\"- 2*86d7f5d3SJohn Marino.\" Copyright (c) 2000 Robert N. M. Watson 3*86d7f5d3SJohn Marino.\" All rights reserved. 4*86d7f5d3SJohn Marino.\" 5*86d7f5d3SJohn Marino.\" Redistribution and use in source and binary forms, with or without 6*86d7f5d3SJohn Marino.\" modification, are permitted provided that the following conditions 7*86d7f5d3SJohn Marino.\" are met: 8*86d7f5d3SJohn Marino.\" 1. Redistributions of source code must retain the above copyright 9*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer. 10*86d7f5d3SJohn Marino.\" 2. Redistributions in binary form must reproduce the above copyright 11*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer in the 12*86d7f5d3SJohn Marino.\" documentation and/or other materials provided with the distribution. 13*86d7f5d3SJohn Marino.\" 14*86d7f5d3SJohn Marino.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*86d7f5d3SJohn Marino.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*86d7f5d3SJohn Marino.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*86d7f5d3SJohn Marino.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*86d7f5d3SJohn Marino.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*86d7f5d3SJohn Marino.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*86d7f5d3SJohn Marino.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*86d7f5d3SJohn Marino.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*86d7f5d3SJohn Marino.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*86d7f5d3SJohn Marino.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*86d7f5d3SJohn Marino.\" SUCH DAMAGE. 25*86d7f5d3SJohn Marino.\" 26*86d7f5d3SJohn Marino.\" $FreeBSD: src/lib/libposix1e/posix1e.3,v 1.3.2.6 2001/12/20 16:27:06 ru Exp $ 27*86d7f5d3SJohn Marino.\" $DragonFly: src/lib/libposix1e/posix1e.3,v 1.6 2007/11/21 19:12:40 swildner Exp $ 28*86d7f5d3SJohn Marino.\" 29*86d7f5d3SJohn Marino.Dd January 17, 2000 30*86d7f5d3SJohn Marino.Dt POSIX1E 3 31*86d7f5d3SJohn Marino.Os 32*86d7f5d3SJohn Marino.Sh NAME 33*86d7f5d3SJohn Marino.Nm posix1e 34*86d7f5d3SJohn Marino.Nd introduction to the POSIX.1e security API 35*86d7f5d3SJohn Marino.Sh LIBRARY 36*86d7f5d3SJohn Marino.Lb libposix1e 37*86d7f5d3SJohn Marino.Sh SYNOPSIS 38*86d7f5d3SJohn Marino.In sys/types.h 39*86d7f5d3SJohn Marino.In sys/acl.h 40*86d7f5d3SJohn Marino.In sys/audit.h 41*86d7f5d3SJohn Marino.In sys/capability.h 42*86d7f5d3SJohn Marino.In sys/mac.h 43*86d7f5d3SJohn Marino.Sh DESCRIPTION 44*86d7f5d3SJohn MarinoThe IEEE POSIX.1e specification never left draft form, but the interfaces 45*86d7f5d3SJohn Marinoit describes are now widely used despite inherent limitations. Currently, 46*86d7f5d3SJohn Marinoonly a few of the interfaces and features are implemented in 47*86d7f5d3SJohn Marino.Dx , 48*86d7f5d3SJohn Marinoalthough efforts are underway to complete the integration at this time. 49*86d7f5d3SJohn Marino.Pp 50*86d7f5d3SJohn MarinoPOSIX.1e describes five security extensions to the base POSIX.1 API: 51*86d7f5d3SJohn MarinoAccess Control Lists (ACLs), Auditing, Capabilities, Mandatory Access 52*86d7f5d3SJohn MarinoControl, and Information Flow Labels. Of these, the ACL interfaces are 53*86d7f5d3SJohn Marinocurrently included with 54*86d7f5d3SJohn Marino.Dx , 55*86d7f5d3SJohn MarinoAuditing, Capabilities, and Mandatory 56*86d7f5d3SJohn MarinoAccess Control are in the wings, and Information Flow Labels are not on 57*86d7f5d3SJohn Marinothe calendar. 58*86d7f5d3SJohn Marino.Pp 59*86d7f5d3SJohn MarinoPOSIX.1e defines both syntax and semantics for these features, but fairly 60*86d7f5d3SJohn Marinosubstantial changes are required to implement these features in the 61*86d7f5d3SJohn Marinooperating system. As shipped, 62*86d7f5d3SJohn Marino.Dx 63*86d7f5d3SJohn Marinopermits file systems to export 64*86d7f5d3SJohn MarinoAccess Control Lists via the VFS, and provides a library for userland 65*86d7f5d3SJohn Marinoaccess to and manipulation of these ACLs, but support for ACLs is not 66*86d7f5d3SJohn Marinoprovided by any file systems shipped in the base operating system. 67*86d7f5d3SJohn MarinoAvailable API calls relating to ACLs are described in detail in 68*86d7f5d3SJohn Marino.Xr acl 3 . 69*86d7f5d3SJohn Marino.Pp 70*86d7f5d3SJohn MarinoThe patches supporting other POSIX.1e features are not available in the 71*86d7f5d3SJohn Marinobase operating system at this time--however, more information on them 72*86d7f5d3SJohn Marinomay be found on the 73*86d7f5d3SJohn Marino.Fx 74*86d7f5d3SJohn MarinoPOSIX.1e implementation web page: 75*86d7f5d3SJohn Marino.Pp 76*86d7f5d3SJohn Marino.Pa http://www.watson.org/fbsd-hardening/posix1e/ 77*86d7f5d3SJohn Marino.Sh IMPLEMENTATION NOTES 78*86d7f5d3SJohn Marino.Dx Ns 's 79*86d7f5d3SJohn Marinosupport for POSIX.1e interfaces and features is still under 80*86d7f5d3SJohn Marinodevelopment at this time. 81*86d7f5d3SJohn Marino.Sh ENVIRONMENT 82*86d7f5d3SJohn MarinoPOSIX.1e assigns security labels to all objects, extending the security 83*86d7f5d3SJohn Marinofunctionality described in POSIX.1. These additional labels provide 84*86d7f5d3SJohn Marinofine-grained discretionary access control, fine-grained capabilities, 85*86d7f5d3SJohn Marinoand labels necessary for mandatory access control. POSIX.2c describes 86*86d7f5d3SJohn Marinoa set of userland utilities for manipulating these labels. These userland 87*86d7f5d3SJohn Marinoutilities are not bundled with 88*86d7f5d3SJohn Marino.Dx 89*86d7f5d3SJohn Marinoso as to discourage their 90*86d7f5d3SJohn Marinouse in the short term. 91*86d7f5d3SJohn Marino.\".Sh FILES 92*86d7f5d3SJohn Marino.Sh SEE ALSO 93*86d7f5d3SJohn Marino.Xr acl 3 , 94*86d7f5d3SJohn Marino.Xr acl 9 , 95*86d7f5d3SJohn Marino.Xr extattr 9 96*86d7f5d3SJohn Marino.Sh STANDARDS 97*86d7f5d3SJohn MarinoPOSIX.1e is described in IEEE POSIX.1e draft 17. Discussion 98*86d7f5d3SJohn Marinoof the draft continues on the cross-platform POSIX.1e implementation 99*86d7f5d3SJohn Marinomailing list. To join this list, see the 100*86d7f5d3SJohn Marino.Fx 101*86d7f5d3SJohn MarinoPOSIX.1e implementation 102*86d7f5d3SJohn Marinopage for more information. 103*86d7f5d3SJohn Marino.Sh HISTORY 104*86d7f5d3SJohn MarinoPOSIX.1e support was introduced in 105*86d7f5d3SJohn Marino.Fx 4.0 , 106*86d7f5d3SJohn Marinoand development continues. 107*86d7f5d3SJohn Marino.Sh AUTHORS 108*86d7f5d3SJohn Marino.An Robert N M Watson , 109*86d7f5d3SJohn Marino.An Ilmar S Habibulin 110*86d7f5d3SJohn Marino.Sh BUGS 111*86d7f5d3SJohn MarinoThese features are not yet fully implemented. In particular, the shipped 112*86d7f5d3SJohn Marinoversion of UFS/FFS does not support storage of additional security labels, 113*86d7f5d3SJohn Marinoand so is unable to (easily) provide support for most of these features. 114