exports.5: network prefixlength (CIDR) format is supported
[dragonfly.git] / sbin / mountd / exports.5
1 .\" Copyright (c) 1989, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)exports.5   8.3 (Berkeley) 3/29/95
29 .\" $FreeBSD: src/sbin/mountd/exports.5,v 1.10.2.8 2002/09/28 16:31:45 markm Exp $
30 .\" $DragonFly: src/sbin/mountd/exports.5,v 1.5 2007/11/23 23:16:36 swildner Exp $
31 .\"
32 .Dd November 10, 2017
33 .Dt EXPORTS 5
34 .Os
35 .Sh NAME
36 .Nm exports
37 .Nd define remote mount points for
38 .Tn NFS
39 mount requests
40 .Sh SYNOPSIS
41 .Nm
42 .Sh DESCRIPTION
43 The
44 .Nm
45 file specifies remote mount points for the
46 .Tn NFS
47 mount protocol per the
48 .Tn NFS
49 server specification; see
50 .%T "Network File System Protocol Specification" ,
51 RFC 1094, Appendix A and
52 .%T "NFS: Network File System Version 3 Specification" ,
53 Appendix I.
54 .Pp
55 Each line in the file
56 (other than comment lines that begin with a #)
57 specifies the mount point(s) and export flags within one local server
58 filesystem for one or more hosts.
59 A host may be specified only once for each local filesystem on the
60 server and there may be only one default entry for each server
61 filesystem that applies to all other hosts.
62 The latter exports the filesystem to the
63 .Dq world
64 and should be used only when the filesystem contains public information.
65 .Pp
66 In a mount entry,
67 the first field(s) specify the directory path(s) within a server filesystem
68 that can be mounted on by the corresponding client(s).
69 There are two forms of this specification.
70 The first is to list all mount points as absolute
71 directory paths separated by whitespace.
72 This list of directory paths should be considered an
73 .Dq administrative control ,
74 since it is only enforced by the
75 .Xr mountd 8
76 daemon and not the kernel.
77 As such, it only applies to NFSv2 and NFSv3 mounts and only
78 with respect to the client's use of the mount protocol.
79 The second is to specify the pathname of the root of the filesystem
80 followed by the
81 .Fl alldirs
82 flag;
83 this form allows the host(s) to mount at any point within the filesystem,
84 including regular files if the
85 .Fl r
86 option is used on
87 .Xr mountd 8 .
88 The pathnames must not have any symbolic links in them and should not have
89 any
90 .Dq Pa \&.
91 or
92 .Dq Pa ..
93 components.
94 Mount points for a filesystem may appear on multiple lines each with
95 different sets of hosts and export options.
96 .Pp
97 The second component of a line specifies how the filesystem is to be
98 exported to the host set.
99 The option flags specify whether the filesystem
100 is exported read-only or read-write and how the client UID is mapped to
101 user credentials on the server.
102 .Pp
103 Export options are specified as follows:
104 .Pp
105 .Sm off
106 .Fl maproot Li = Sy user
107 .Sm on
108 The credential of the specified user is used for remote access by root.
109 The credential includes all the groups to which the user is a member
110 on the local machine (see
111 .Xr id 1 ) .
112 The user may be specified by name or number.
113 .Pp
114 .Sm off
115 .Fl maproot Li = Sy user:group1:group2:...
116 .Sm on
117 The colon separated list is used to specify the precise credential
118 to be used for remote access by root.
119 The elements of the list may be either names or numbers.
120 Note that user: should be used to distinguish a credential containing
121 no groups from a complete credential for that user.
122 .Pp
123 .Sm off
124 .Fl mapall Li = Sy user
125 .Sm on
126 or
127 .Sm off
128 .Fl mapall Li = Sy user:group1:group2:...
129 .Sm on
130 specifies a mapping for all client UIDs (including root)
131 using the same semantics as
132 .Fl maproot .
133 .Pp
134 The option
135 .Fl r
136 is a synonym for
137 .Fl maproot
138 in an effort to be backward compatible with older export file formats.
139 .Pp
140 In the absence of
141 .Fl maproot
142 and
143 .Fl mapall
144 options, remote accesses by root will result in using a credential of 65534:65533.
145 All other users will be mapped to their remote credential.
146 If a
147 .Fl maproot
148 option is given,
149 remote access by root will be mapped to that credential instead of 65534:65533.
150 If a
151 .Fl mapall
152 option is given,
153 all users (including root) will be mapped to that credential in
154 place of their own.
155 .Pp
156 The
157 .Fl ro
158 option specifies that the filesystem should be exported read-only
159 (default read/write).
160 The option
161 .Fl o
162 is a synonym for
163 .Fl ro
164 in an effort to be backward compatible with older export file formats.
165 .Pp
166 .Tn WebNFS
167 exports strictly according to the spec (RFC 2054 and RFC 2055) can
168 be done with the
169 .Fl public
170 flag.
171 However, this flag in itself allows r/w access to all files in
172 the file system, not requiring reserved ports and not remapping UIDs.
173 It
174 is only provided to conform to the spec, and should normally not be used.
175 For a
176 .Tn WebNFS
177 export,
178 use the
179 .Fl webnfs
180 flag, which implies
181 .Fl public ,
182 .Sm off
183 .Fl mapall No = Sy nobody
184 .Sm on
185 and
186 .Fl ro .
187 .Pp
188 A
189 .Sm off
190 .Fl index No = Sy file
191 .Sm on
192 option can be used to specify a file whose handle will be returned if
193 a directory is looked up using the public filehandle
194 .Pq Tn WebNFS .
195 This is to mimic the behavior of URLs.
196 If no
197 .Fl index
198 option is specified, a directory filehandle will be returned as usual.
199 The
200 .Fl index
201 option only makes sense in combination with the
202 .Fl public
203 or
204 .Fl webnfs
205 flags.
206 .Pp
207 Specifying the
208 .Fl quiet
209 option will inhibit some of the syslog diagnostics for bad lines in
210 .Pa /etc/exports .
211 This can be useful to avoid annoying error messages for known possible
212 problems (see
213 .Sx EXAMPLES
214 below).
215 .Pp
216 The third component of a line specifies the host set to which the line applies.
217 The set may be specified in three ways.
218 The first way is to list the host name(s) separated by white space.
219 (Standard Internet
220 .Dq dot
221 addresses may be used in place of names.)
222 The second way is to specify a
223 .Dq netgroup
224 as defined in the
225 .Pa netgroup
226 file (see
227 .Xr netgroup 5 ) .
228 The third way is to specify an Internet subnetwork using a network and
229 network mask that is defined as the set of all hosts with addresses within
230 the subnetwork.
231 This latter approach requires less overhead within the
232 kernel and is recommended for cases where the export line refers to a
233 large number of clients within an administrative subnet.
234 .Pp
235 The first two cases are specified by simply listing the name(s) separated
236 by whitespace.
237 All names are checked to see if they are
238 .Dq netgroup
239 names first and are assumed to be hostnames otherwise.
240 Using the full domain specification for a hostname can normally
241 circumvent the problem of a host that has the same name as a netgroup.
242 The third case is specified by the flag
243 .Sm off
244 .Fl network Li = Sy netname Op Li / Ar prefixlength
245 .Sm on
246 and optionally
247 .Sm off
248 .Fl mask No = Sy netmask .
249 .Sm on
250 The netmask may be specified either by attaching a
251 .Ar prefixlength
252 to the
253 .Fl network
254 option, or by using a separate
255 .Fl mask
256 option.
257 If the mask is not specified, it will default to the mask for that network
258 class (A, B or C; see
259 .Xr inet 4 ) .
260 See the
261 .Sx EXAMPLES
262 section below.
263 .Pp
264 The
265 .Xr mountd 8
266 utility can be made to re-read the
267 .Nm
268 file by sending it a hangup signal as follows:
269 .Bd -literal -offset indent
270 /etc/rc.d/mountd reload
271 .Ed
272 .Pp
273 After sending the
274 .Dv SIGHUP ,
275 check the
276 .Xr syslogd 8
277 output to see whether
278 .Xr mountd 8
279 logged any parsing errors in the
280 .Nm
281 file.
282 .Sh FILES
283 .Bl -tag -width /etc/exports -compact
284 .It Pa /etc/exports
285 the default remote mount-point file
286 .El
287 .Sh EXAMPLES
288 .Bd -literal -offset indent
289 /usr /usr/local -maproot=0:10 friends
290 /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16
291 /usr -ro -mapall=nobody
292 /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0
293 /a -network 192.168.0/24
294 /u2 -maproot=root friends
295 /u2 -alldirs -network cis-net -mask cis-mask
296 /cdrom -alldirs,quiet,ro -network 192.168.33.0 -mask 255.255.255.0
297 .Ed
298 .Pp
299 Given that
300 .Pa /usr ,
301 .Pa /u ,
302 .Pa /a
303 and
304 .Pa /u2
305 are
306 local filesystem mount points, the above example specifies the following:
307 .Pp
308 The file system rooted at
309 .Pa /usr
310 is exported to hosts
311 .Em friends
312 where friends is specified in the netgroup file
313 with users mapped to their remote credentials and
314 root mapped to UID 0 and group 10.
315 It is exported read-write and the hosts in
316 .Dq friends
317 can mount either
318 .Pa /usr
319 or
320 .Pa /usr/local .
321 It is exported to
322 .Em 131.104.48.16
323 and
324 .Em grumpy.cis.uoguelph.ca
325 with users mapped to their remote credentials and
326 root mapped to the user and groups associated with
327 .Dq daemon ;
328 it is exported to the rest of the world as read-only with
329 all users mapped to the user and groups associated with
330 .Dq nobody .
331 .Pp
332 The file system rooted at
333 .Pa /u
334 is exported to all hosts on the subnetwork
335 .Em 131.104.48
336 with root mapped to the UID for
337 .Dq bin
338 and with no group access.
339 .Pp
340 The file system rooted at
341 .Pa /u2
342 is exported to the hosts in
343 .Dq friends
344 with root mapped to UID and groups
345 associated with
346 .Dq root ;
347 it is exported to all hosts on network
348 .Dq cis-net
349 allowing mounts at any
350 directory within /u2.
351 .Pp
352 The file system rooted at
353 .Pa /a
354 is exported to the network 192.168.0.0, with a netmask of 255.255.255.0.
355 However, the netmask length in the entry for
356 .Pa /a
357 is not specified through a
358 .Fl mask
359 option, but through the
360 .Li / Ns Ar prefix
361 notation.
362 .Pp
363 The filesystem rooted at
364 .Pa /cdrom
365 will exported read-only to the entire network 192.168.33.0/24, including
366 all its subdirectories.
367 Since
368 .Pa /cdrom
369 is the conventional mountpoint for a CD-ROM device, this export will
370 fail if no CD-ROM medium is currently mounted there since that line
371 would then attempt to export a subdirectory of the root filesystem
372 with the
373 .Fl alldirs
374 option which is not allowed.
375 The
376 .Fl quiet
377 option will then suppress the error message for this condition that
378 would normally be syslogged.
379 As soon as an actual CD-ROM is going to be mounted,
380 .Xr mount 8
381 will notify
382 .Xr mountd 8
383 about this situation, and the
384 .Pa /cdrom
385 filesystem will be exported as intended.
386 Note that without using the
387 .Fl alldirs
388 option, the export would always succeed.
389 While there is no CD-ROM medium mounted under
390 .Pa /cdrom ,
391 it would export the (normally empty) directory
392 .Pa /cdrom
393 of the root filesystem instead.
394 .Sh SEE ALSO
395 .Xr netgroup 5 ,
396 .Xr mountd 8 ,
397 .Xr nfsd 8 ,
398 .Xr showmount 8
399 .Sh BUGS
400 The export options are tied to the local mount points in the kernel and
401 must be non-contradictory for any exported subdirectory of the local
402 server mount point.
403 It is recommended that all exported directories within the same server
404 filesystem be specified on adjacent lines going down the tree.
405 You cannot specify a hostname that is also the name of a netgroup.
406 Specifying the full domain specification for a hostname can normally
407 circumvent the problem.