---
name: "devfs.rules"
section: "5"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/devfs.rules"
---

# devfs.rules(5)

devfs configuration information

## NAME

**devfs.rules** – devfs configuration information

## DESCRIPTION

The **devfs.rules** file provides an easy way to create and apply [devfs(8)](/devfs/8.md) rules, even for devices that are not available at boot.

For devices available at boot, see [devfs.conf(5)](/devfs.conf/5.md).

The format of this file is simple. Empty lines and lines beginning with a hash sign (‘#’) are ignored. A line between brackets denotes the start of a ruleset. In the brackets should be the name of the ruleset and its number, separated by an equal sign.

Other lines are rule specifications as documented in [devfs(8)](/devfs/8.md), in the section Rule Specification. These lines are prepended with “rule” and are passed to [devfs(8)](/devfs/8.md) by the startup scripts of the system. It is important to put path elements that contain [glob(3)](/glob/3.md) special characters between quotes.

Rulesets should have a unique name and number.

All rules that follow a ruleset declaration belong to that ruleset, until a new ruleset is started.

One custom ruleset has to be enabled in */etc/rc.conf*, otherwise it will not be applied to the */dev* file system by the default system startup process. For example, to enable a “localrules” ruleset for the */dev* file system, you would have to use something like this in your *rc.conf* file:

```
devfs_system_ruleset="localrules"
```

The rules are loaded at boot via the devfs service. To load modified rules after the system has booted, run the command:

```
service devfs restart
```

## FILES

- */etc/defaults/devfs.rules*

  Default **devfs.rules** configuration file.

- */etc/devfs.rules*

  Local **devfs.rules** configuration file. Rulesets in here override those in */etc/defaults/devfs.rules* with the same ruleset number, otherwise the two files are effectively merged.

## EXAMPLES

To make all the partitions of [da(4)](/da/4.md) devices readable and writable by their owner and the “usb” group, the following rule may be used:

```
[localrules=10]
```

```
add path 'da*s*' mode 0660 group usb
```

The first line declares and starts a new ruleset, with the name *localrules* and the number 10.

To give [usbconfig(8)](/usbconfig/8.md) and [libusb(3)](/libusb/3.md) enabled applications permission to all usb devices for their owner and the “usb” group, a similar rule may be used:

```
add path 'usb/*' mode 0660 group usb
```

## SEE ALSO

[glob(3)](/glob/3.md), [devfs(4)](/devfs/4.md), [devfs.conf(5)](/devfs.conf/5.md), [devfs(8)](/devfs/8.md), [service(8)](/service/8.md)

## AUTHORS

This manual page was written by Roland Smith ⟨*rsmith@xs4all.nl*⟩.
