]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/ugidfw/ugidfw.8
zfs: merge openzfs/zfs@2e2a46e0a
[FreeBSD/FreeBSD.git] / usr.sbin / ugidfw / ugidfw.8
1 .\" Copyright (c) 2002, 2004 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 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .Dd February 24, 2004
32 .Dt UGIDFW 8
33 .Os
34 .Sh NAME
35 .Nm ugidfw
36 .Nd "firewall-like access controls for file system objects"
37 .Sh SYNOPSIS
38 .Nm
39 .Cm add
40 .Cm subject
41 .Op Cm not
42 .Oo
43 .Op Cm \&!
44 .Cm uid Ar uid | minuid:maxuid
45 .Oc
46 .Oo
47 .Op Cm \&!
48 .Cm gid Ar gid | mingid:maxgid
49 .Oc
50 .Oo
51 .Op Cm \&!
52 .Cm jailid Ad jailid
53 .Oc
54 .Cm object
55 .Op Cm not
56 .Oo
57 .Op Cm \&!
58 .Cm uid Ar uid | minuid:maxuid
59 .Oc
60 .Oo
61 .Op Cm \&!
62 .Cm gid Ar gid | mingid:maxgid
63 .Oc
64 .Oo
65 .Op Cm \&!
66 .Cm filesys Ad path
67 .Oc
68 .Oo
69 .Op Cm \&!
70 .Cm suid
71 .Oc
72 .Oo
73 .Op Cm \&!
74 .Cm sgid
75 .Oc
76 .Oo
77 .Op Cm \&!
78 .Cm uid_of_subject
79 .Oc
80 .Oo
81 .Op Cm \&!
82 .Cm gid_of_subject
83 .Oc
84 .Oo
85 .Op Cm \&!
86 .Cm type Ar ardbclsp
87 .Oc
88 .Cm mode
89 .Ar arswxn
90 .Nm
91 .Cm list
92 .Nm
93 .Cm set
94 .Ar rulenum
95 .Cm subject
96 .Op Cm not
97 .Oo
98 .Op Cm \&!
99 .Cm uid Ar uid | minuid:maxuid
100 .Oc
101 .Oo
102 .Op Cm \&!
103 .Cm gid Ar gid | mingid:maxgid
104 .Oc
105 .Oo
106 .Op Cm \&!
107 .Cm jailid Ad jailid
108 .Oc
109 .Cm object
110 .Op Cm not
111 .Oo
112 .Op Cm \&!
113 .Cm uid Ar uid | minuid:maxuid
114 .Oc
115 .Oo
116 .Op Cm \&!
117 .Cm gid Ar gid | mingid:maxgid
118 .Oc
119 .Oo
120 .Op Cm \&!
121 .Cm filesys Ad path
122 .Oc
123 .Oo
124 .Op Cm \&!
125 .Cm suid
126 .Oc
127 .Oo
128 .Op Cm \&!
129 .Cm sgid
130 .Oc
131 .Oo
132 .Op Cm \&!
133 .Cm uid_of_subject
134 .Oc
135 .Oo
136 .Op Cm \&!
137 .Cm gid_of_subject
138 .Oc
139 .Oo
140 .Op Cm \&!
141 .Cm type Ar ardbclsp
142 .Oc
143 .Cm mode
144 .Ar arswxn
145 .Nm
146 .Cm remove
147 .Ar rulenum
148 .Sh DESCRIPTION
149 The
150 .Nm
151 utility provides an
152 .Xr ipfw 8 Ns -like
153 interface to manage access to file system objects by UID and GID,
154 supported by the
155 .Xr mac_bsdextended 4
156 .Xr mac 9
157 policy.
158 .Pp
159 The arguments are as follows:
160 .Bl -tag -width indent -offset indent
161 .It Xo
162 .Cm add
163 .Cm subject
164 .Ar ...
165 .Cm object
166 .Ar ...
167 .Cm mode
168 .Ar arswxn
169 .Xc
170 Add a new rule, automatically selecting the rule number.
171 See the description of
172 .Cm set
173 for syntax information.
174 .It Cm list
175 Produces a list of all the current
176 .Nm
177 rules in the system.
178 .It Xo
179 .Cm set Ar rulenum
180 .Cm subject
181 .Ar ...
182 .Cm object
183 .Ar ...
184 .Cm mode
185 .Ar arswxn
186 .Xc
187 Add a new rule or modify an existing rule.
188 The arguments are as follows:
189 .Bl -tag -width ".Ar rulenum"
190 .It Ar rulenum
191 Rule number.
192 Entries with a lower rule number
193 are applied first;
194 placing the most frequently-matched rules at the beginning of the list
195 (i.e., lower-numbered)
196 will yield a slight performance increase.
197 .It Xo
198 .Cm subject
199 .Op Cm not
200 .Oo
201 .Op Cm \&!
202 .Cm uid Ar uid | minuid:maxuid
203 .Oc
204 .Oo
205 .Op Cm \&!
206 .Cm gid Ar gid | mingid:maxgid
207 .Oc
208 .Oo
209 .Op Cm \&!
210 .Cm jailid Ad jailid
211 .Oc
212 .Xc
213 Subjects performing an operation must match all the conditions given.
214 A leading
215 .Cm not
216 means that the subject should not match the remainder of the specification.
217 A condition may be prefixed by
218 .Cm \&!
219 to indicate that particular condition must not match the subject.
220 The subject can be required to have a particular
221 .Ar uid
222 and/or
223 .Ar gid .
224 A range of uids/gids can be specified, separated by a colon.
225 The subject can be required to be in a particular jail with the
226 .Ar jailid .
227 .It Xo
228 .Cm object
229 .Op Cm not
230 .Oo
231 .Op Cm \&!
232 .Cm uid Ar uid | minuid:maxuid
233 .Oc
234 .Oo
235 .Op Cm \&!
236 .Cm gid Ar gid | mingid:maxgid
237 .Oc
238 .Oo
239 .Op Cm \&!
240 .Cm filesys Ad path
241 .Oc
242 .Oo
243 .Op Cm \&!
244 .Cm suid
245 .Oc
246 .Oo
247 .Op Cm \&!
248 .Cm sgid
249 .Oc
250 .Oo
251 .Op Cm \&!
252 .Cm uid_of_subject
253 .Oc
254 .Oo
255 .Op Cm \&!
256 .Cm gid_of_subject
257 .Oc
258 .Oo
259 .Op Cm \&!
260 .Cm type Ar ardbclsp
261 .Oc
262 .Xc
263 The rule will apply only to objects matching all the specified conditions.
264 A leading
265 .Cm not
266 means that the object should not match all the remaining conditions.
267 A condition may be prefixed by
268 .Cm \&!
269 to indicate that particular condition must not match the object.
270 Objects can be required to be owned by the user and/or group specified by
271 .Ar uid
272 and/or
273 .Ar gid .
274 A range of uids/gids can be specified, separated by a colon.
275 The object can be required to be in a particular filesystem by
276 specifying the filesystem using
277 .Cm filesys .
278 Note,
279 if the filesystem is unmounted and remounted,
280 then the rule may need to be reapplied to ensure the correct filesystem
281 id is used.
282 The object can be required to have the
283 .Cm suid
284 or
285 .Cm sgid
286 bits set.
287 The owner of the object can be required to match the
288 .Cm uid_of_subject
289 or the
290 .Cm gid_of_subject
291 attempting the operation.
292 The type of the object can be restricted to a subset of
293 the following types.
294 .Pp
295 .Bl -tag -width ".Cm w" -compact -offset indent
296 .It Cm a
297 any file type
298 .It Cm r
299 a regular file
300 .It Cm d
301 a directory
302 .It Cm b
303 a block special device
304 .It Cm c
305 a character special device
306 .It Cm l
307 a symbolic link
308 .It Cm s
309 a unix domain socket
310 .It Cm p
311 a named pipe (FIFO)
312 .El
313 .It Cm mode Ar arswxn
314 Similar to
315 .Xr chmod 1 ,
316 each character represents an access mode.
317 If the rule applies,
318 the specified access permissions are enforced
319 for the object.
320 When a character is specified in the rule,
321 the rule will allow for the operation.
322 Conversely, not including it will cause the operation
323 to be denied.
324 The definitions of each character are as follows:
325 .Pp
326 .Bl -tag -width ".Cm w" -compact -offset indent
327 .It Cm a
328 administrative operations
329 .It Cm r
330 read access
331 .It Cm s
332 access to file attributes
333 .It Cm w
334 write access
335 .It Cm x
336 execute access
337 .It Cm n
338 none
339 .El
340 .El
341 .It Cm remove Ar rulenum
342 Disable and remove the rule with the specified rule number.
343 .El
344 .Sh SEE ALSO
345 .Xr mac_bsdextended 4 ,
346 .Xr mac 9
347 .Sh HISTORY
348 The
349 .Nm
350 utility first appeared in
351 .Fx 5.0 .
352 .Sh AUTHORS
353 This software was contributed to the
354 .Fx
355 Project by NAI Labs, the Security Research Division of Network Associates
356 Inc.\& under DARPA/SPAWAR contract N66001-01-C-8035
357 .Pq Dq CBOSS ,
358 as part of the DARPA CHATS research program.