xref: /dflybsd-src/lib/libposix1e/posix1e.3 (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
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