Imported Upstream version 1.2.3
[nfs-utils.git] / utils / mountd / mountd.man
1 .\"@(#)rpc.mountd.8"
2 .\"
3 .\" Copyright (C) 1999 Olaf Kirch <okir@monad.swb.de>
4 .\" Modified by Paul Clements, 2004.
5 .\"
6 .TH rpc.mountd 8 "31 Dec 2009"
7 .SH NAME
8 rpc.mountd \- NFS mount daemon
9 .SH SYNOPSIS
10 .BI "/usr/sbin/rpc.mountd [" options "]"
11 .SH DESCRIPTION
12 The
13 .B rpc.mountd
14 daemon implements the server side of the NFS MOUNT protocol,
15 an NFS side protocol used by NFS version 2 [RFC1094] and NFS version 3 [RFC1813].
16 .PP
17 An NFS server maintains a table of local physical file systems
18 that are accessible to NFS clients.
19 Each file system in this table is referred to as an
20 .IR "exported file system" ,
21 or
22 .IR export ,
23 for short.
24 .PP
25 Each file system in the export table has an access control list.
26 .B rpc.mountd
27 uses these access control lists to determine
28 whether an NFS client is permitted to access a given file system.
29 For details on how to manage your NFS server's export table, see the
30 .BR exports (5)
31 and
32 .BR exportfs (8)
33 man pages.
34 .SS Mounting exported NFS File Systems
35 The NFS MOUNT protocol has several procedures.
36 The most important of these are
37 MNT (mount an export) and
38 UMNT (unmount an export).
39 .PP
40 A MNT request has two arguments: an explicit argument that
41 contains the pathname of the root directory of the export to be mounted,
42 and an implicit argument that is the sender's IP address.
43 .PP
44 When receiving a MNT request from an NFS client,
45 .B rpc.mountd
46 checks both the pathname and the sender's IP address against its export table.
47 If the sender is permitted to access the requested export,
48 .B rpc.mountd
49 returns an NFS file handle for the export's root directory to the client.
50 The client can then use the root file handle and NFS LOOKUP requests
51 to navigate the directory structure of the export.
52 .SS The rmtab File
53 The
54 .B rpc.mountd
55 daemon registers every successful MNT request by adding an entry to the
56 .I /var/lib/nfs/rmtab
57 file.
58 When receivng a UMNT request from an NFS client,
59 .B rpc.mountd
60 simply removes the matching entry from
61 .IR /var/lib/nfs/rmtab ,
62 as long as the access control list for that export allows that sender
63 to access the export.
64 .PP
65 Clients can discover the list of file systems an NFS server is
66 currently exporting, or the list of other clients that have mounted
67 its exports, by using the
68 .BR showmount (8)
69 command.
70 .BR showmount (8)
71 uses other procedures in the NFS MOUNT protocol to report information
72 about the server's exported file systems.
73 .PP
74 Note, however, that there is little to guarantee that the contents of
75 .I /var/lib/nfs/rmtab
76 are accurate.
77 A client may continue accessing an export even after invoking UMNT.
78 If the client reboots without sending a UMNT request, stale entries
79 remain for that client in
80 .IR /var/lib/nfs/rmtab .
81 .SH OPTIONS
82 .TP
83 .B \-d kind " or " \-\-debug kind
84 Turn on debugging. Valid kinds are: all, auth, call, general and parse.
85 .TP
86 .B \-F " or " \-\-foreground
87 Run in foreground (do not daemonize)
88 .TP
89 .B \-f " or " \-\-exports-file
90 This option specifies the exports file, listing the clients that this
91 server is prepared to serve and parameters to apply to each
92 such mount (see
93 .BR exports (5)).
94 By default, export information is read from
95 .IR /etc/exports .
96 .TP
97 .B \-h " or " \-\-help
98 Display usage message.
99 .TP
100 .B \-o num " or " \-\-descriptors num
101 Set the limit of the number of open file descriptors to num. The
102 default is to leave the limit unchanged.
103 .TP
104 .B \-N " or " \-\-no-nfs-version
105 This option can be used to request that
106 .B rpc.mountd
107 do not offer certain versions of NFS. The current version of
108 .B rpc.mountd
109 can support both NFS version 2 and the newer version 3. If the
110 NFS kernel module was compiled without support for NFSv3,
111 .B rpc.mountd
112 must be invoked with the option
113 .B "\-\-no-nfs-version 3" .
114 .TP
115 .B \-n " or " \-\-no-tcp
116 Don't advertise TCP for mount.
117 .TP
118 .B \-P
119 Ignored (compatibility with unfsd??).
120 .TP
121 .B \-p " or " \-\-port num
122 Specifies the port number used for RPC listener sockets.
123 If this option is not specified,
124 .B rpc.mountd
125 chooses a random ephemeral port for each listener socket.
126 .IP
127 This option can be used to fix the port value of
128 .BR rpc.mountd 's
129 listeners when NFS MOUNT requests must traverse a firewall
130 between clients and servers.
131 .TP
132 .B \-H " or " \-\-ha-callout prog
133 Specify a high availability callout program.
134 This program receives callouts for all MOUNT and UNMOUNT requests.
135 This allows
136 .B rpc.mountd
137 to be used in a High Availability NFS (HA-NFS) environment.
138 .IP
139 The callout program is run with 4 arguments.
140 The first is
141 .B mount
142 or
143 .B unmount
144 depending on the reason for the callout.
145 The second will be the name of the client performing the mount.
146 The third will be the path that the client is mounting.
147 The last is the number of concurrent mounts that we believe the client
148 has of that path.
149 .IP
150 This callout is not needed with 2.6 and later kernels.
151 Instead, mount the nfsd filesystem on
152 .IR /proc/fs/nfsd .
153 .TP
154 .BI "\-s," "" " \-\-state\-directory\-path "  directory
155 Specify a directory in which to place statd state information.
156 If this option is not specified the default of
157 .I /var/lib/nfs
158 is used.
159 .TP
160 .BI "\-r," "" " \-\-reverse\-lookup"
161 .B rpc.mountd
162 tracks IP addresses in the
163 .I rmtab
164 file.  When a DUMP request is made (by
165 someone running
166 .BR "showmount -a" ,
167 for instance), it returns IP addresses instead
168 of hostnames by default. This option causes
169 .B rpc.mountd
170 to perform a reverse lookup on each IP address and return that hostname instead.
171 Enabling this can have a substantial negative effect on performance
172 in some situations.
173 .TP
174 .BR "\-t N" " or " "\-\-num\-threads=N"
175 This option specifies the number of worker threads that rpc.mountd
176 spawns.  The default is 1 thread, which is probably enough.  More
177 threads are usually only needed for NFS servers which need to handle
178 mount storms of hundreds of NFS mounts in a few seconds, or when
179 your DNS server is slow or unreliable.
180 .TP
181 .B \-V " or " \-\-nfs-version
182 This option can be used to request that
183 .B rpc.mountd
184 offer certain versions of NFS. The current version of
185 .B rpc.mountd
186 can support both NFS version 2 and the newer version 3.
187 .TP
188 .B \-v " or " \-\-version
189 Print the version of
190 .B rpc.mountd
191 and exit.
192 .TP
193 .B \-g " or " \-\-manage-gids
194 Accept requests from the kernel to map user id numbers into  lists of
195 group id numbers for use in access control.  An NFS request will
196 normally (except when using Kerberos or other cryptographic
197 authentication) contains a user-id and a list of group-ids.  Due to a
198 limitation in the NFS protocol, at most 16 groups ids can be listed.
199 If you use the
200 .B \-g
201 flag, then the list of group ids received from the client will be
202 replaced by a list of group ids determined by an appropriate lookup on
203 the server. Note that the 'primary' group id is not affected so a
204 .B newgroup
205 command on the client will still be effective.  This function requires
206 a Linux Kernel with version at least 2.6.21.
207 .SH TCP_WRAPPERS SUPPORT
208 You can protect your
209 .B rpc.mountd
210 listeners using the
211 .B tcp_wrapper
212 library or
213 .BR iptables (8).
214 .PP
215 Note that the
216 .B tcp_wrapper
217 library supports only IPv4 networking.
218 .PP
219 Add the hostnames of NFS peers that are allowed to access
220 .B rpc.mountd
221 to
222 .IR /etc/hosts.allow .
223 Use the daemon name
224 .B mountd
225 even if the
226 .B rpc.mountd
227 binary has a different name.
228 .PP
229 Hostnames used in either access file will be ignored when
230 they can not be resolved into IP addresses.
231 For further information see the
232 .BR tcpd (8)
233 and
234 .BR hosts_access (5)
235 man pages.
236 .SS IPv6 and TI-RPC support
237 TI-RPC is a pre-requisite for supporting NFS on IPv6.
238 If TI-RPC support is built into
239 .BR rpc.mountd ,
240 it attempts to start listeners on network transports marked 'visible' in
241 .IR /etc/netconfig .
242 As long as at least one network transport listener starts successfully,
243 .B rpc.mountd
244 will operate.
245 .SH FILES
246 .TP 2.5i
247 .I /etc/exports
248 input file for
249 .BR exportfs ,
250 listing exports, export options, and access control lists
251 .TP 2.5i
252 .I /var/lib/nfs/rmtab
253 table of clients accessing server's exports
254 .SH SEE ALSO
255 .BR exportfs (8),
256 .BR exports (5),
257 .BR showmount (8),
258 .BR rpc.nfsd (8),
259 .BR rpc.rquotad (8),
260 .BR nfs (5),
261 .BR tcpd (8),
262 .BR hosts_access (5),
263 .BR iptables (8),
264 .BR netconfig (5)
265 .sp
266 RFC 1094 - "NFS: Network File System Protocol Specification"
267 .br
268 RFC 1813 - "NFS Version 3 Protocol Specification"
269 .SH AUTHOR
270 Olaf Kirch, H. J. Lu, G. Allan Morris III, and a host of others.