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 151The 152.Nm 153utility provides an 154.Xr ipfw 8 Ns -like 155interface to manage access to file system objects by UID and GID, 156supported by the 157.Xr mac_bsdextended 4 158.Xr mac 9 159policy. 160.Pp 161The 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 172Add a new rule, automatically selecting the rule number. 173See the description of 174.Cm set 175for syntax information. 176.It Cm list 177Produces a list of all the current 178.Nm 179rules 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 189Add a new rule or modify an existing rule. 190The arguments are as follows: 191.Bl -tag -width ".Ar rulenum" 192.It Ar rulenum 193Rule number. 194Entries with a lower rule number 195are applied first; 196placing the most frequently-matched rules at the beginning of the list 197(i.e., lower-numbered) 198will 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 215Subjects performing an operation must match all the conditions given. 216A leading 217.Cm not 218means that the subject should not match the remainder of the specification. 219A condition may be prefixed by 220.Cm \&! 221to indicate that particular condition must not match the subject. 222The subject can be required to have a particular 223.Ar uid 224and/or 225.Ar gid . 226A range of uids/gids can be specified, separated by a colon. 227The subject can be required to be in a particular jail with the 228.Ar jailid . 229.It Xo 230.Cm object 231.Op Cm not 232.Oo 233.Op Cm \&! 234.Cm uid Ar uid | minuid:maxuid 235.Oc 236.Oo 237.Op Cm \&! 238.Cm gid Ar gid | mingid:maxgid 239.Oc 240.Oo 241.Op Cm \&! 242.Cm filesys Ad path 243.Oc 244.Oo 245.Op Cm \&! 246.Cm suid 247.Oc 248.Oo 249.Op Cm \&! 250.Cm sgid 251.Oc 252.Oo 253.Op Cm \&! 254.Cm uid_of_subject 255.Oc 256.Oo 257.Op Cm \&! 258.Cm gid_of_subject 259.Oc 260.Oo 261.Op Cm \&! 262.Cm type Ar ardbclsp 263.Oc 264.Xc 265The rule will apply only to objects matching all the specified conditions. 266A leading 267.Cm not 268means that the object should not match all the remaining conditions. 269A condition may be prefixed by 270.Cm \&! 271to indicate that particular condition must not match the object. 272Objects can be required to be owned by the user and/or group specified by 273.Ar uid 274and/or 275.Ar gid . 276A range of uids/gids can be specified, separated by a colon. 277The object can be required to be in a particular filesystem by 278specifying the filesystem using 279.Cm filesys . 280Note, 281if the filesystem is unmounted and remounted, 282then the rule may need to be reapplied to ensure the correct filesystem 283id is used. 284The object can be required to have the 285.Cm suid 286or 287.Cm sgid 288bits set. 289The owner of the object can be required to match the 290.Cm uid_of_subject 291or the 292.Cm gid_of_subject 293attempting the operation. 294The type of the object can be restricted to a subset of 295the following types. 296.Pp 297.Bl -tag -width ".Cm w" -compact -offset indent 298.It Cm a 299any file type 300.It Cm r 301a regular file 302.It Cm d 303a directory 304.It Cm b 305a block special device 306.It Cm c 307a character special device 308.It Cm l 309a symbolic link 310.It Cm s 311a unix domain socket 312.It Cm p 313a named pipe (FIFO) 314.El 315.It Cm mode Ar arswxn 316Similar to 317.Xr chmod 1 , 318each character represents an access mode. 319If the rule applies, 320the specified access permissions are enforced 321for the object. 322When a character is specified in the rule, 323the rule will allow for the operation. 324Conversely, not including it will cause the operation 325to be denied. 326The definitions of each character are as follows: 327.Pp 328.Bl -tag -width ".Cm w" -compact -offset indent 329.It Cm a 330administrative operations 331.It Cm r 332read access 333.It Cm s 334access to file attributes 335.It Cm w 336write access 337.It Cm x 338execute access 339.It Cm n 340none 341.El 342.El 343.It Cm remove Ar rulenum 344Disable and remove the rule with the specified rule number. 345.El 346.Sh SEE ALSO 347.Xr mac_bsdextended 4 , 348.Xr mac 9 349.Sh HISTORY 350The 351.Nm 352utility first appeared in 353.Fx 5.0 . 354.Sh AUTHORS 355This software was contributed to the 356.Fx 357Project by NAI Labs, the Security Research Division of Network Associates 358Inc.\& under DARPA/SPAWAR contract N66001-01-C-8035 359.Pq Dq CBOSS , 360as part of the DARPA CHATS research program. 361