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