]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/exportfs/exports.man
Merge branch 'upstream'
[nfs-utils.git] / utils / exportfs / exports.man
index 120ed2c99f83f16033ba6b4060eb970564c6be1a..fd6d4be4a74bfe53a44799eef5fcabc7399e2fa1 100644 (file)
@@ -1,5 +1,4 @@
-.TH EXPORTS 5 "28 October 1999"
-.UC 5
+.TH EXPORTS 5 "4 March 2005" "Linux" "Linux File Formats Manual"
 .SH NAME
 exports \- NFS file systems being exported (for Kernel based NFS)
 .SH SYNOPSIS
@@ -17,12 +16,21 @@ and to the kernel based NFS file server daemon
 .PP
 The file format is similar to the SunOS
 .I exports
-file, except that several additional options are permitted.  Each line
-contains an export point and a list of machine or netgroup names allowed
-to mount the file system at that point.  An optional parenthesized list
-of export parameters may follow each machine name.  Blank lines are
-ignored, and a # introduces a comment to the end of the line. Entries may
-be continued across newlines using a backslash.
+file. Each line contains an export point and a whitespace-separated list
+of clients allowed to mount the file system at that point. Each listed
+client may be immediately followed by a parenthesized, comma-separated
+list of export options for that client. No whitespace is permitted
+between a client and its option list.
+.PP
+Blank lines are ignored.  A pound sign ("#") introduces a comment to the
+end of the line. Entries may be continued across newlines using a
+backslash. If an export name contains spaces it should be quoted using
+double quotes. You can also specify spaces or other unusual character in
+the export name using a backslash followed by the character code as three
+octal digits.
+.PP
+To apply changes to this file, run exportfs -ra or (on Debian)
+/etc/init.d/nfs-kernel-server reload.
 .PP
 .SS Machine Name Formats
 NFS clients may be specified in a number of ways:
@@ -39,15 +47,21 @@ parts or those containing a single dash (\-) are ignored.
 .IP "wildcards
 Machine names may contain the wildcard characters \fI*\fR and \fI?\fR.
 This can be used to make the \fIexports\fR file more compact; for instance,
-\fI*.cs.foo.edu\fR matches all hosts in the domain \fIcs.foo.edu\fR. However,
-these wildcard characters do not match the dots in a domain name, so the
-above pattern does not include hosts such as \fIa.b.cs.foo.edu\fR.
+\fI*.cs.foo.edu\fR matches all hosts in the domain
+\fIcs.foo.edu\fR.  As these characters also match the dots in a domain
+name, the given pattern will also match all hosts within any subdomain
+of \fIcs.foo.edu\fR.
 .IP "IP networks
 You can also export directories to all hosts on an IP (sub-) network
 simultaneously. This is done by specifying an IP address and netmask pair
 as
-.IR address/netmask .
-.TP
+.IR address/netmask
+where the netmask can be specified in dotted-decimal format, or as a
+contiguous mask length (for example, either `/255.255.252.0' or `/22' appended
+to the network base address result in identical subnetworks with 10 bits of
+host). Wildcard characters generally do not work on IP addresses, though they
+may work by accident when reverse DNS lookups fail.
+'''.TP
 '''.B =public
 '''This is a special ``hostname'' that identifies the given directory name
 '''as the public root directory (see the section on WebNFS in
@@ -67,6 +81,11 @@ as
 '''.B \-\-public\-root
 '''option. Multiple specifications of a public root will be ignored.
 .PP
+.SS RPCSEC_GSS security
+To restrict access to an export using rpcsec_gss security, use the special
+string "gss/krb5" as the client.  It is not possible to simultaneously require
+rpcsec_gss and to make requirements on the IP address of the client.
+.PP
 .SS General Options
 .IR exportfs
 understands the following export options:
@@ -83,18 +102,39 @@ default is to disallow any request which changes the filesystem.
 This can also be made explicit by using
 the
 .IR ro " option.
+.TP
+.IR async
+This option allows the NFS server to violate the NFS protocol and
+reply to requests before any changes made by that request have been
+committed to stable storage (e.g. disc drive).
+
+Using this option usually improves performance, but at the cost that
+an unclean server restart (i.e. a crash) can cause data to be lost or
+corrupted.
+
 .TP
 .IR sync
-This option requests that all file writes be committed to disc before
-the write request completes.  This is required for complete safety of
-data in the face of a server crash, but incurs a performance hit.
-The default is to allow the server to write the data out whenever it
-is ready.  This can be explicitly requested with the
-.IR async " option.
+Reply to requests only after the changes have been committed to stable
+storage (see
+.IR async
+above).
+
+In releases of nfs-utils upto and including 1.0.0, this option was the
+default.  In this and future releases,
+.I sync
+is the default, and
+.I async
+must be explicit requested if needed.
+To help make system adminstrators aware of this change, 'exportfs'
+will issue a warning if neither
+.I sync
+nor
+.I async
+is specified.
 .TP
 .IR no_wdelay
-This option only has effect if
-.I sync
+This option has no effect if
+.I async
 is also set.  The NFS server will normally delay committing a write request
 to disc slightly if it suspects that another related write request may be in
 progress or may arrive soon.  This allows multiple write requests to
@@ -138,9 +178,17 @@ copes with the situation effectively.
 The option can be explicitly disabled with
 .IR hide .
 .TP
+.IR crossmnt
+This option is similar to
+.I nohide
+but it makes it possible for clients to move from the filesystem marked
+with crossmnt to exported filesystems mounted on it.  Thus when a child
+filesystem "B" is mounted on a parent "A", setting crossmnt on "A" has
+the same effect as setting "nohide" on B.
+.TP
 .IR no_subtree_check
 This option disables subtree checking, which has mild security
-implications, but can improve reliability is some circumstances.
+implications, but can improve reliability in some circumstances.
 
 If a subdirectory of a filesystem is exported, but the whole
 filesystem isn't then whenever a NFS request arrives, the server must
@@ -159,7 +207,7 @@ subtree checking is also used to make sure that files inside
 directories to which only root has access can only be accessed if the
 filesystem is exported with
 .I no_root_squash
-(see below), even the file itself allows more general access.
+(see below), even if the file itself allows more general access.
 
 As a general guide, a home directory filesystem, which is normally
 exported at the root and may see lots of file renames, should be
@@ -192,6 +240,21 @@ be explicitly requested with either of the synonymous
 .IR auth_nlm ,
 or
 .IR secure_locks .
+.TP
+.IR no_acl
+On some specially patched kernels, and when exporting filesystems that
+support ACLs, this option tells nfsd not to reveal ACLs to clients, so
+they will see only a subset of actual permissions on the given file
+system.  This option is safe for filesystems used by NFSv2 clients and
+old NFSv3 clients that perform access decisions locally.  Current
+NFSv3 clients use the ACCESS RPC to perform all access decisions on
+the server.  Note that the
+.I no_acl
+option only has effect on kernels specially patched to support it, and
+when exporting filesystems with ACL support.  The default is to export
+with ACL support (i.e. by default,
+.I no_acl
+is off).
 
 '''.TP
 '''.I noaccess
@@ -211,6 +274,47 @@ or
 '''.TP
 '''.IR link_absolute
 '''Leave all symbolic link as they are. This is the default operation.
+
+.TP
+.IR mountpoint= path
+.TP
+.I mp
+This option makes it possible to only export a directory if it has
+successfully been mounted.
+If no path is given (e.g.
+.IR mountpoint " or " mp )
+then the export point must also be a mount point.  If it isn't then
+the export point is not exported.  This allows you to be sure that the
+directory underneath a mountpoint will never be exported by accident
+if, for example, the filesystem failed to mount due to a disc error.
+
+If a path is given (e.g.
+.IR mountpoint= "/path or " mp= /path)
+then the nominted path must be a mountpoint for the exportpoint to be
+exported.
+
+.TP
+.IR fsid= num
+This option forces the filesystem identification portion of the file
+handle and file attributes used on the wire to be
+.I num
+instead of a number derived from the major and minor number of the
+block device on which the filesystem is mounted.  Any 32 bit number
+can be used, but it must be unique amongst all the exported filesystems.
+
+This can be useful for NFS failover, to ensure that both servers of
+the failover pair use the same NFS file handles for the shared filesystem
+thus avoiding stale file handles after failover.
+
+Some Linux filesystems are not mounted on a block device; exporting
+these via NFS requires the use of the
+.I fsid
+option (although that may still not be enough).
+
+The value  0 has a special meaning when use with NFSv4.  NFSv4 has a
+concept of a root of the overall exported filesystem. The export point
+exported with fsid=0 will be used as this root.
+
 .SS User ID Mapping
 .PP
 .I nfsd
@@ -237,7 +341,7 @@ By default,
 '''in the password file at startup time. If it isn't found, a uid and gid
 .I exportfs
 chooses a uid and gid
-of -2 (i.e. 65534) for squashed access. These values can also be overridden by
+of 65534 for squashed access. These values can also be overridden by
 the
 .IR anonuid " and " anongid
 options.
@@ -335,7 +439,7 @@ which is the default setting.
 '''# Mapping for client foobar:
 '''#    remote     local
 '''uid  0-99       -       # squash these
-'''uid  100-500    1000    # map 100-500 to 1000-1500
+'''uid  100-500    1000    # map 100-500 to 1000-1400
 '''gid  0-49       -       # squash these
 '''gid  50-100     700     # map 50-100 to 700-750
 '''.fi
@@ -415,6 +519,12 @@ don't use a reserved port for NFS.
 '''entry.
 .SH FILES
 /etc/exports
+.SH SEE ALSO
+.BR exportfs (8),
+.BR netgroup (5),
+.BR mountd (8),
+.BR nfsd (8),
+.BR showmount (8).
 '''.SH DIAGNOSTICS
 '''An error parsing the file is reported using syslogd(8) as level NOTICE from
 '''a DAEMON whenever nfsd(8) or mountd(8) is started up.  Any unknown