add missing files by .gitignore
[external/buxton.git] / docs / buxton-security.7
1 '\" t
2 .TH "BUXTON\-SECURITY" "7" "" "buxton 1" "buxton\-security"
3 .\" -----------------------------------------------------------------
4 .\" * Define some portability stuff
5 .\" -----------------------------------------------------------------
6 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 .\" http://bugs.debian.org/507673
8 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
9 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 .ie \n(.g .ds Aq \(aq
11 .el       .ds Aq '
12 .\" -----------------------------------------------------------------
13 .\" * set default formatting
14 .\" -----------------------------------------------------------------
15 .\" disable hyphenation
16 .nh
17 .\" disable justification (adjust text to left margin only)
18 .ad l
19 .\" -----------------------------------------------------------------
20 .\" * MAIN CONTENT STARTS HERE *
21 .\" -----------------------------------------------------------------
22 .SH "NAME"
23 buxton\-security \- Outline of buxton security model
24
25 .SH "DESCRIPTION"
26 .PP
27 Buxton uses a Mandatory Access Control (MAC) system to secure
28 configuration storage elements, namely, groups and keys within these
29 groups\&. MAC is enforced by using the
30 \m[blue]\fBSmack\fR\m[]\&\s-2\u[1]\d\s+2
31 Linux Security Module\&.
32
33 Each group and key that exists in buxton's configuration storage has
34 a Smack label associated with it\&. The label set by buxton is taken
35 from the Smack label of the running process (client) that created the
36 original group or key\&. If the label for a group or key should be
37 changed after initial group or key creation, a client with
38 appropriate privilege (UID 0) may modify it using
39 \fBbuxton_set_label\fR(3) or the "set\-label" command of
40 \fBbuxtonctl\fR(1)\&.
41
42 MAC is enforced for nearly all types of access requested by
43 clients\&. When enforcement is in effect, buxton consults the list of
44 Smack rules, managed by the Smack LSM, to make an access decision\&.
45 The table below lists the checks in effect for every buxton
46 command\&.
47
48 .B Table\ \&1.\ \&Access check grid
49 .TS
50 allbox tab(:);
51 lB lB.
52 T{
53 Command
54 T}:T{
55 Access checks
56 T}
57 .T&
58 l l
59 l l
60 l l
61 l l
62 l l
63 l l.
64 T{
65 set\-value (int32, bool, etc\&.)
66 T}:T{
67 Check read/write access on the group, and if the key exists, check
68 read/write access on the key\&.
69 T}
70 T{
71 get\-value (int32, bool, etc\&.)
72 T}:T{
73 Check read access on the group, and check read access on the key\&.
74 T}
75 T{
76 unset\-value
77 T}:T{
78 Check read/write access on the group and on the key\&.
79 T}
80 T{
81 create\-group
82 T}:T{
83 For system layers, check for UID 0\&. For user layers, no permission
84 checks are needed\&.
85 T}
86 T{
87 remove\-group
88 T}:T{
89 For system layers, check for UID 0\&. For user layers, check write
90 access on the group\&.
91 T}
92 T{
93 set\-label
94 T}:T{
95 For system layers, check for UID 0\&. Action is not allowed for user
96 layers\&.
97 T}
98 .TE
99
100 .sp 1
101
102 .PP
103 Since buxton uses layers to store sets of groups and keys, and
104 identical group/key sets may exist across all layers, fine\-grained
105 access control is achievable by setting appropriate Smack labels on
106 groups and keys for the targeted layer\&. For a more detailed
107 discussion of the interaction of group/key labels and the layer
108 model, see \fBbuxton\-layers\fR(7)\&.
109
110 .SH "COPYRIGHT"
111 .PP
112 Copyright 2014 Intel Corporation\&. License: Creative Commons
113 Attribution\-ShareAlike 3.0 Unported\s-2\u[2]\d\s+2\&.
114
115 .SH "SEE ALSO"
116 .PP
117 \fBbuxton\fR(7),
118 \fBbuxtonctl\fR(1),
119 \fBbuxtond\fR(8),
120 \fBbuxton\-api\fR(7)
121
122 .SH "NOTES"
123 .IP " 1." 4
124 Smack
125 .RS 4
126 \%https://www.kernel.org/doc/Documentation/security/Smack.txt
127 .RE
128 .IP " 2." 4
129 Creative Commons Attribution\-ShareAlike 3.0 Unported
130 .RS 4
131 \%http://creativecommons.org/licenses/by-sa/3.0/
132 .RE