kernel - Fix auto port assignment collision in network code
[dragonfly.git] / sbin / mountd / exports.5
blob7aa66aca58c645c0b258320984c9a57dbd2d7c9a
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 .\"
31 .Dd March 14, 2018
32 .Dt EXPORTS 5
33 .Os
34 .Sh NAME
35 .Nm exports
36 .Nd define remote mount points for
37 .Tn NFS
38 mount requests
39 .Sh SYNOPSIS
40 .Nm
41 .Sh DESCRIPTION
42 The
43 .Nm
44 file specifies remote mount points for the
45 .Tn NFS
46 mount protocol per the
47 .Tn NFS
48 server specification; see
49 .%T "Network File System Protocol Specification" ,
50 RFC 1094, Appendix A and
51 .%T "NFS: Network File System Version 3 Specification" ,
52 Appendix I.
53 .Pp
54 Each line in the file
55 (other than comment lines that begin with a #)
56 specifies the mount point(s) and export flags within one local server
57 filesystem for one or more hosts.
58 A host may be specified only once for each local filesystem on the
59 server and there may be only one default entry for each server
60 filesystem that applies to all other hosts.
61 The latter exports the filesystem to the
62 .Dq world
63 and should be used only when the filesystem contains public information.
64 .Pp
65 In a mount entry,
66 the first field(s) specify the directory path(s) within a server filesystem
67 that can be mounted on by the corresponding client(s).
68 There are two forms of this specification.
69 The first is to list all mount points as absolute
70 directory paths separated by whitespace.
71 This list of directory paths should be considered an
72 .Dq administrative control ,
73 since it is only enforced by the
74 .Xr mountd 8
75 daemon and not the kernel.
76 As such, it only applies to NFSv2 and NFSv3 mounts and only
77 with respect to the client's use of the mount protocol.
78 The second is to specify the pathname of the root of the filesystem
79 followed by the
80 .Fl alldirs
81 flag;
82 this form allows the host(s) to mount at any point within the filesystem,
83 including regular files if the
84 .Fl r
85 option is used on
86 .Xr mountd 8 .
87 The pathnames must not have any symbolic links in them and should not have
88 any
89 .Dq Pa \&.
91 .Dq Pa ..
92 components.
93 Mount points for a filesystem may appear on multiple lines each with
94 different sets of hosts and export options.
95 .Pp
96 The second component of a line specifies how the filesystem is to be
97 exported to the host set.
98 The option flags specify whether the filesystem
99 is exported read-only or read-write and how the client UID is mapped to
100 user credentials on the server.
102 Export options are specified as follows:
104 .Sm off
105 .Fl maproot Li = Sy user
106 .Sm on
107 The credential of the specified user is used for remote access by root.
108 The credential includes all the groups to which the user is a member
109 on the local machine (see
110 .Xr id 1 ) .
111 The user may be specified by name or number.
113 .Sm off
114 .Fl maproot Li = Sy user:group1:group2:...
115 .Sm on
116 The colon separated list is used to specify the precise credential
117 to be used for remote access by root.
118 The elements of the list may be either names or numbers.
119 Note that user: should be used to distinguish a credential containing
120 no groups from a complete credential for that user.
122 .Sm off
123 .Fl mapall Li = Sy user
124 .Sm on
126 .Sm off
127 .Fl mapall Li = Sy user:group1:group2:...
128 .Sm on
129 specifies a mapping for all client UIDs (including root)
130 using the same semantics as
131 .Fl maproot .
133 The option
134 .Fl r
135 is a synonym for
136 .Fl maproot
137 in an effort to be backward compatible with older export file formats.
139 In the absence of
140 .Fl maproot
142 .Fl mapall
143 options, remote accesses by root will result in using a credential of 65534:65533.
144 All other users will be mapped to their remote credential.
145 If a
146 .Fl maproot
147 option is given,
148 remote access by root will be mapped to that credential instead of 65534:65533.
149 If a
150 .Fl mapall
151 option is given,
152 all users (including root) will be mapped to that credential in
153 place of their own.
156 .Fl ro
157 option specifies that the filesystem should be exported read-only
158 (default read/write).
159 The option
160 .Fl o
161 is a synonym for
162 .Fl ro
163 in an effort to be backward compatible with older export file formats.
165 .Tn WebNFS
166 exports strictly according to the spec (RFC 2054 and RFC 2055) can
167 be done with the
168 .Fl public
169 flag.
170 However, this flag in itself allows r/w access to all files in
171 the file system, not requiring reserved ports and not remapping UIDs.
173 is only provided to conform to the spec, and should normally not be used.
174 For a
175 .Tn WebNFS
176 export,
177 use the
178 .Fl webnfs
179 flag, which implies
180 .Fl public ,
181 .Sm off
182 .Fl mapall No = Sy nobody
183 .Sm on
185 .Fl ro .
188 .Sm off
189 .Fl index No = Sy file
190 .Sm on
191 option can be used to specify a file whose handle will be returned if
192 a directory is looked up using the public filehandle
193 .Pq Tn WebNFS .
194 This is to mimic the behavior of URLs.
195 If no
196 .Fl index
197 option is specified, a directory filehandle will be returned as usual.
199 .Fl index
200 option only makes sense in combination with the
201 .Fl public
203 .Fl webnfs
204 flags.
206 Specifying the
207 .Fl quiet
208 option will inhibit some of the syslog diagnostics for bad lines in
209 .Pa /etc/exports .
210 This can be useful to avoid annoying error messages for known possible
211 problems (see
212 .Sx EXAMPLES
213 below).
215 The third component of a line specifies the host set to which the line applies.
216 The set may be specified in three ways.
217 The first way is to list the host name(s) separated by white space.
218 (Standard Internet
219 .Dq dot
220 addresses may be used in place of names.)
221 The second way is to specify a
222 .Dq netgroup
223 as defined in the
224 .Pa netgroup
225 file (see
226 .Xr netgroup 5 ) .
227 The third way is to specify an Internet subnetwork using a network and
228 network mask that is defined as the set of all hosts with addresses within
229 the subnetwork.
230 This latter approach requires less overhead within the
231 kernel and is recommended for cases where the export line refers to a
232 large number of clients within an administrative subnet.
234 The first two cases are specified by simply listing the name(s) separated
235 by whitespace.
236 All names are checked to see if they are
237 .Dq netgroup
238 names first and are assumed to be hostnames otherwise.
239 Using the full domain specification for a hostname can normally
240 circumvent the problem of a host that has the same name as a netgroup.
241 The third case is specified by the flag
242 .Sm off
243 .Fl network Li = Sy netname Op Li / Ar prefixlength
244 .Sm on
245 and optionally
246 .Sm off
247 .Fl mask No = Sy netmask .
248 .Sm on
249 The netmask may be specified either by attaching a
250 .Ar prefixlength
251 to the
252 .Fl network
253 option, or by using a separate
254 .Fl mask
255 option.
256 If the mask is not specified, it will default to the mask for that network
257 class (A, B or C; see
258 .Xr inet 4 ) .
259 See the
260 .Sx EXAMPLES
261 section below.
264 .Xr mountd 8
265 utility can be made to re-read the
267 file by sending it a hangup signal as follows:
268 .Bd -literal -offset indent
269 /etc/rc.d/mountd reload
272 After sending the
273 .Dv SIGHUP ,
274 check the
275 .Xr syslogd 8
276 output to see whether
277 .Xr mountd 8
278 logged any parsing errors in the
280 file.
281 .Sh FILES
282 .Bl -tag -width /etc/exports -compact
283 .It Pa /etc/exports
284 the default remote mount-point file
286 .Sh EXAMPLES
287 .Bd -literal -offset indent
288 /usr /usr/local -maproot=0:10 friends
289 /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16
290 /usr -ro -mapall=nobody
291 /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0
292 /a -network 192.168.0/24
293 /u2 -maproot=root friends
294 /u2 -alldirs -network cis-net -mask cis-mask
295 /cdrom -alldirs,quiet,ro -network 192.168.33.0 -mask 255.255.255.0
298 Given that
299 .Pa /usr ,
300 .Pa /u ,
301 .Pa /a
303 .Pa /u2
305 local filesystem mount points, the above example specifies the following:
307 The file system rooted at
308 .Pa /usr
309 is exported to hosts
310 .Em friends
311 where friends is specified in the netgroup file
312 with users mapped to their remote credentials and
313 root mapped to UID 0 and group 10.
314 It is exported read-write and the hosts in
315 .Dq friends
316 can mount either
317 .Pa /usr
319 .Pa /usr/local .
320 It is exported to
321 .Em 131.104.48.16
323 .Em grumpy.cis.uoguelph.ca
324 with users mapped to their remote credentials and
325 root mapped to the user and groups associated with
326 .Dq daemon ;
327 it is exported to the rest of the world as read-only with
328 all users mapped to the user and groups associated with
329 .Dq nobody .
331 The file system rooted at
332 .Pa /u
333 is exported to all hosts on the subnetwork
334 .Em 131.104.48
335 with root mapped to the UID for
336 .Dq bin
337 and with no group access.
339 The file system rooted at
340 .Pa /u2
341 is exported to the hosts in
342 .Dq friends
343 with root mapped to UID and groups
344 associated with
345 .Dq root ;
346 it is exported to all hosts on network
347 .Dq cis-net
348 allowing mounts at any
349 directory within /u2.
351 The file system rooted at
352 .Pa /a
353 is exported to the network 192.168.0.0, with a netmask of 255.255.255.0.
354 However, the netmask length in the entry for
355 .Pa /a
356 is not specified through a
357 .Fl mask
358 option, but through the
359 .Li / Ns Ar prefix
360 notation.
362 The filesystem rooted at
363 .Pa /cdrom
364 will exported read-only to the entire network 192.168.33.0/24, including
365 all its subdirectories.
366 Since
367 .Pa /cdrom
368 is the conventional mountpoint for a CD-ROM device, this export will
369 fail if no CD-ROM medium is currently mounted there since that line
370 would then attempt to export a subdirectory of the root filesystem
371 with the
372 .Fl alldirs
373 option which is not allowed.
375 .Fl quiet
376 option will then suppress the error message for this condition that
377 would normally be syslogged.
378 As soon as an actual CD-ROM is going to be mounted,
379 .Xr mount 8
380 will notify
381 .Xr mountd 8
382 about this situation, and the
383 .Pa /cdrom
384 filesystem will be exported as intended.
385 Note that without using the
386 .Fl alldirs
387 option, the export would always succeed.
388 While there is no CD-ROM medium mounted under
389 .Pa /cdrom ,
390 it would export the (normally empty) directory
391 .Pa /cdrom
392 of the root filesystem instead.
393 .Sh SEE ALSO
394 .Xr netgroup 5 ,
395 .Xr mountd 8 ,
396 .Xr nfsd 8 ,
397 .Xr showmount 8
398 .Sh BUGS
399 The export options are tied to the local mount points in the kernel and
400 must be non-contradictory for any exported subdirectory of the local
401 server mount point.
402 It is recommended that all exported directories within the same server
403 filesystem be specified on adjacent lines going down the tree.
404 You cannot specify a hostname that is also the name of a netgroup.
405 Specifying the full domain specification for a hostname can normally
406 circumvent the problem.