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