c7b230a291c0fd12185fb0218163d061672932da
[nfs-utils.git] / utils / exportfs / exportfs.man
1 .\"
2 .\" exportfs(8)
3 .\" 
4 .\" Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de>
5 .\" Modifications 1999-2003 Neil Brown <neilb@cse.unsw.edu.au>
6 .TH exportfs 8 "18 July 2003"
7 .SH NAME
8 exportfs \- maintain list of NFS exported file systems
9 .SH SYNOPSIS
10 .BI "/usr/sbin/exportfs [-avi] [-o " "options,.." "] [" "client:/path" " ..]
11 .br
12 .BI "/usr/sbin/exportfs -r [-v]"
13 .br
14 .BI "/usr/sbin/exportfs [-av] -u [" "client:/path" " ..]
15 .br
16 .BI "/usr/sbin/exportfs [-v]
17 .br
18 .BI "/usr/sbin/exportfs -f"
19 .br
20 .SH DESCRIPTION
21 The
22 .B exportfs
23 command is used to maintain the current table of exported file systems for
24 NFS. This list is kept in a separate file named
25 .BR /var/lib/nfs/etab
26 which is read by
27 .B mountd
28 when a remote host requests access to mount a file tree, and parts of
29 the list which are active are kept in the kernel's export table.
30 .P
31 Normally this 
32 .B etab
33 file is initialized with the list of all file systems named in
34 .B /etc/exports 
35 by invoking
36 .BR "exportfs -a" .
37 .P
38 However, administrators can choose to add and delete individual file systems
39 without modifying
40 .B /etc/exports
41 using
42 .BR exportfs .
43 .P
44 .B exportfs
45 and it's partner program
46 .B mountd
47 work in one of two modes, a legacy mode which applies to 2.4 and
48 earlier versions of the Linux kernel, and a new mode which applies to
49 2.6 and later versions providing the
50 .B nfsd
51 virtual filesystem has been mounted at
52 .B /proc/fs/nfsd
53 or
54 .BR /proc/fs/nfs .
55 If this filesystem is not mounted in 2.6, the legacy mode is used.
56 .P
57 In the new mode,
58 .B exportfs
59 does not give any information to the kernel but only provides it to
60 .B mountd
61 through the
62 .B /var/lib/nfs/etab
63 file.
64 .B mountd
65 will listen to requests from the kernel and will provide information
66 as needed.
67 .P
68 In the legacy mode,
69 any export requests which identify a specific host (rather than a
70 subnet or netgroup etc) are entered directly into the kernel's export
71 table as well as being written to
72 .BR /var/lib/nfs/etab .
73 Further, any mount points listed in
74 .B /var/lib/nfs/rmtab
75 which match a non host-specific export request will cause an
76 appropriate export entry for the host given in
77 .B rmtab
78 to be entered
79 into the kernel's export table.
80 .SH OPTIONS
81 .TP 
82 .B -a
83 Export or unexport all directories.
84 .TP
85 .BI "-o " options,...
86 Specify a list of export options in the same manner as in
87 .BR exports(5) .
88 .TP
89 .B -i
90 Ignore the
91 .B /etc/exports
92 file, so that only default options and options given on the command
93 line are used.
94 .TP
95 .B -r
96 Reexport all directories. It synchronizes /var/lib/nfs/etab
97 with /etc/exports. It removes entries in /var/lib/nfs/etab
98 which are deleted from /etc/exports, and remove any entries from the
99 kernel export table which are no longer valid.
100 .TP
101 .B -u
102 Unexport one or more directories.
103 .TP
104 .B -f
105 In 'new' mode, flush everything out of the kernels export table. Any
106 clients that are active will get new entries added by
107 .B mountd
108 when they make their next request.
109 .TP
110 .B -v
111 Be verbose. When exporting or unexporting, show what's going on. When
112 displaying the current export list, also display the list of export
113 options.
114 .SH DISCUSSION
115 .\" -------------------- Exporting Directories --------------------
116 .SS Exporting Directories
117 The first synopsis shows how to invoke the command when adding new
118 entries to the export table.  When using 
119 .BR "exportfs -a" ,
120 all directories in
121 .B exports(5)
122 are added to
123 .B etab
124 and the resulting list is pushed into the kernel.
125 .P
126 The
127 .I host:/path
128 argument specifies the directory to export along with the host or hosts to
129 export it to. All formats described in
130 .B exports(5)
131 are supported; to export a directory to the world, simply specify
132 .IR :/path .
133 .P
134 The export options for a particular host/directory pair derive from
135 several sources.  There is a set of default options which can be overridden by
136 entries in
137 .B /etc/exports
138 (unless the
139 .B -i
140 option is given).
141 In addition, the administrator may override any options from these sources
142 using the
143 .B -o
144 argument which takes a comma-separated list of options in the same fashion
145 as one would specify them in
146 .BR exports(5) .
147 Thus,
148 .B exportfs
149 can also be used to modify the export options of an already exported
150 directory.
151 .P
152 Modifications of the kernel export table used by
153 .B nfsd(8)
154 take place immediately after parsing the command line and updating the
155 .B etab
156 file.
157 .P
158 The default export options are
159 .BR sync,ro,root_squash,wdelay .
160 .\" -------------------- Unexporting Directories ------------------
161 .SS Unexporting Directories
162 The third synopsis shows how to unexported a currently exported directory.
163 When using
164 .BR "exportfs -ua" ,
165 all entries listed in
166 .B etab
167 are removed from the kernel export tables, and the file is cleared. This
168 effectively shuts down all NFS activity.
169 .P
170 To remove an export to a host, specify a
171 .I host:/path
172 pair. This deletes the specified entry from
173 .B etab
174 and removes the corresponding kernel entry (if any).
175 To remove one or more exports to several hosts, use
176 .BR "exportfs -ua" .
177 .P
178 .\" -------------------- Dumping the Export Table -----------------
179 .SS Dumping the Export Table 
180 Invoking
181 .B exportfs
182 without further options shows the current list of exported file systems.
183 When giving the
184 .B -v
185 option, the list of flags pertaining to each export are shown in addition.
186 .\" -------------------- EXAMPLES ---------------------------------
187 .SH EXAMPLES
188 The following adds all directories listed in
189 .B /etc/exports
190 to
191 .B /var/lib/nfs/etab
192 and pushes the resulting export entries into the kernel:
193 .P
194 .nf
195 .B "# exportfs -a
196 .fi
197 .P
198 To export the
199 .B /usr/tmp
200 directory to host 
201 .BR django ,
202 allowing asynchronous writes, one would do this:
203 .P
204 .nf
205 .B "# exportfs -o async django:/usr/tmp
206 .fi
207 .P
208 To unexport the
209 .B /usr/tmp
210 directory:
211 .P
212 .nf
213 .B "# exportfs -u django:/usr/tmp
214 .fi
215 .P
216 To unexport all the directories listed in
217 .B /etc/exports:
218 .P
219 .nf
220 .B "# exportfs -au
221 .fi
222 .\" -------------------- DEPENDENCIES -----------------------------
223 .SH DEPENDENCIES
224 Exporting to IP networks, DNS and NIS domains does not enable clients
225 from these groups to access NFS immediately; rather, these sorts of
226 exports are hints to
227 .B mountd(8)
228 to grant any mount requests from these clients.
229 This is usually not a big problem, because any existing mounts are preserved
230 in
231 .B rmtab
232 across reboots.
233 .P
234 When unexporting a network or domain entry, any current exports to members
235 of this group will be checked against the remaining valid exports and
236 if they themselves are no longer valid they will be removed.
237 .P
238 .\" -------------------- SEE ALSO --------------------------------
239 .SH SEE ALSO
240 .BR exports(5) ", " mountd(8)
241 .\" -------------------- AUTHOR ----------------------------------
242 .SH AUTHORS
243 Olaf Kirch, <okir@monad.swb.de>
244 .br
245 Neil Brown, <neilb@cse.unsw.edu.au>
246