xref: /dragonfly/sbin/devfsctl/devfsctl.8 (revision 36a3d1d6)
1.\"
2.\" Copyright (c) 2009
3.\"	The DragonFly Project.  All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\"
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in
13.\"    the documentation and/or other materials provided with the
14.\"    distribution.
15.\" 3. Neither the name of The DragonFly Project nor the names of its
16.\"    contributors may be used to endorse or promote products derived
17.\"    from this software without specific, prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.Dd August 25, 2009
33.Os
34.Dt DEVFSCTL 8
35.Sh NAME
36.Nm devfsctl
37.Nd manipulate devfs rules
38.Sh SYNOPSIS
39.Nm
40.Fl a
41.Fl f Ar file
42.Op Fl m Ar mount_point
43.Nm
44.Fl d
45.Fl f Ar file
46.Nm
47.Fl c
48.Op Fl m Ar mount_point
49.Nm
50.Fl r
51.Op Fl m Ar mount_point
52.Nm
53.Fl h
54.Sh DESCRIPTION
55The
56.Nm
57provides an interface to manipulate the in-kernel
58.Xr devfs 5
59ruleset.
60.Pp
61The options are as follows:
62.Bl -tag -width indent
63.It Fl a
64Load the ruleset specified by
65.Fl f
66and apply it.
67It will not overwrite currently applied rules,
68but just append the new ones.
69.It Fl c
70Clear the current ruleset.
71This does not reset the device nodes, but only clear out all stored rules
72so that they are not applied to new nodes.
73It is therefore recommended to use this command in conjunction with
74.Fl r .
75.It Fl d
76Reads ruleset specified by
77.Fl f
78and then dumps its contents to stdout.
79The rules will not be applied.
80This option cannot be used in conjunction with any other option.
81It is useful for checking the correct syntax and order of the specified ruleset
82and will show the final interpretation as it would be applied.
83.It Fl f Ar file
84Specifies the file containing the ruleset to be loaded.
85This option is a requirement for
86.Fl a
87and
88.Fl d .
89.It Fl h
90Shows a usage message with a short description of
91.Nm Ap s
92options.
93.It Fl m Ar mount_point
94Specifies the mount point to which the loaded rules shall apply.
95If this option is not specified, the rules will apply to all
96.Xr devfs 5
97mountpoints.
98The
99.Ar mount_point
100argument does not accept wildcards and must be an absolute path.
101.It Fl r
102Reset all
103.Xr devfs 5
104nodes to their original status.
105This does not clear the current ruleset and it is hence recommended
106to use this command together with
107.Fl c .
108.El
109.Sh RULE SYNTAX
110Rules are specified one rule per line, with whitespace separated values.
111Empty lines and lines beginning with a
112.Dq #
113are ignored.
114Once applied, the rules are in effect for existing device nodes as well
115as future ones.
116Rules are applied in the order specified, thus later rules will override
117prior ones.
118.Pp
119Names used in
120.Xr devfs 5
121rules can be either device names (? and * wildcards are allowed), device
122types or existing groups.
123Groups are referenced in rules by prefixing them with
124.Sq @ .
125A device type is one of the following list of special names:
126.Pp
127.Bl -tag -offset indent -width ".Li D_DISK" -compact
128.It Li D_DISK
129disk devices/slices/partitions
130.It Li D_TAPE
131tape devices
132.It Li D_MEM
133(kernel) memory devices
134.It Li D_TTY
135tty devices
136.El
137.Pp
138Rule lines are of the following format:
139.Bd -literal -offset indent
140.Ic action Cm argument ...
141.Ed
142.Pp
143Valid actions are
144.Ic group ,
145.Ic include ,
146.Ic hide ,
147.Ic jail ,
148.Ic link ,
149.Ic perm
150and
151.Ic show :
152.Bl -tag -width indent -offset indent
153.It Ic group Ar group_name Ar name ...
154This will group the specified names into a group of the specified
155.Ar group_name .
156.It Ic include Ar file
157Includes the specified rule file and processes its rules.
158.It Ic hide Ar name
159This will hide the device node(s) specified by
160.Ar name .
161A hidden node will not appear in directory listings and all operations on
162it will fail, except if it is open already.
163By default, everything except
164.Xr pty 4
165nodes is shown.
166.It Ic jail Ar yes|no
167A
168.Sq Ar yes
169argument will cause all following rules to only apply to mounts of
170.Xr devfs 5
171inside a
172.Xr jail 8 ,
173until a
174.Dq Ic jail Ar no
175is reached.
176.It Ic link Ar device Ar path
177.Ic link
178rules will create a link node at the specified
179.Ar link_path
180to the given
181.Ar device .
182The path is relative to the mountpoint being operated on (see
183.Xr devfsctl 8 Ap s
184.Fl m
185option), which is usually
186.Pa /dev .
187.Pp
188Note that for
189.Ic link
190rules, the
191.Ar device
192has to be a single device node and specifying a device type or group (unless
193it contains only one node) is not possible.
194.It Ic perm Ar name Ar user:group Ar mode
195A
196.Ic perm
197rule will applies the specified mode (octal, see
198.Xr chmod 1 )
199and ownership (see
200.Xr chown 2 )
201to
202.Ar name .
203.It Ic show Ar name
204This will show previously hidden nodes again.
205.El
206.Sh FILES
207.Bl -tag -width ".Pa /etc/devfs" -compact
208.It Pa /etc/defaults/devfs.conf
209Global devfs ruleset file
210.It Pa /etc/devfs.conf
211Local devfs ruleset file
212.El
213.Sh EXAMPLES
214Examples of valid names:
215.Bd -literal -offset indent
216bpf*
217tun0
218D_DISK
219serno/*s3
220@groupA
221.Ed
222.Pp
223Examples of valid rules:
224.Bd -literal -offset indent
225group   foo     da*     ri*
226group   foo     ad*
227group   foo     md*
228
229perm    da0     uucp:dialer 0644
230link    foo     bar
231hide    @foo
232show    D_DISK
233group   g1      a b f g
234group   g2      c d
235group   g3      @g1 h @g2 i j k D_MEM
236jail    yes
237hide    @g3
238perm    @g3     root:wheel 0644
239jail    no
240group   cdrom   cd*     acd*
241group   disks   da*
242group   disks   ad*
243group   drives  @disks  @cdrom
244
245group   test    @disks  @g2     y
246show    @drives
247show    @disks
248show    @test
249link    da0     "my drives/my new da0"
250.Ed
251.Sh SEE ALSO
252.Xr devfs 5 ,
253.Xr mount_devfs 8
254.Sh HISTORY
255The
256.Nm
257utility appeared in
258.Dx 2.3 .
259.Sh AUTHORS
260.An Alex Hornung
261