The exportfs
Command
Every file system being exported to remote users via NFS, as well as the access level for those file systems, are listed in the /etc/exports
file. When the nfs
service starts, the /usr/sbin/exportfs
command launches and reads this file, passes control to rpc.mountd
(if NFSv2 or NFSv3) for the actual mounting process, then to rpc.nfsd
where the file systems are then available to remote users.
When issued manually, the /usr/sbin/exportfs
command allows the root user to selectively export or unexport directories without restarting the NFS service. When given the proper options, the /usr/sbin/exportfs
command writes the exported file systems to /var/lib/nfs/xtab
. Since rpc.mountd
refers to the xtab
file when deciding access privileges to a file system, changes to the list of exported file systems take effect immediately.
The following is a list of commonly used options available for /usr/sbin/exportfs
:
-r
- Causes all directories listed in/etc/exports
to be exported by constructing a new export list in/etc/lib/nfs/xtab
. This option effectively refreshes the export list with any changes that have been made to/etc/exports
.
-a
- Causes all directories to be exported or unexported, depending on what other options are passed to/usr/sbin/exportfs
. If no other options are specified,/usr/sbin/exportfs
exports all file systems specified in/etc/exports
.-o
- Specifies directories to be exported that are not listed infile-systems
/etc/exports
. Replacefile-systems
with additional file systems to be exported. These file systems must be formatted in the same way they are specified in/etc/exports
. Refer to "The/etc/exports
Configuration File" for more information on/etc/exports
syntax. This option is often used to test an exported file system before adding it permanently to the list of file systems to be exported.-i
- Ignores/etc/exports
; only options given from the command line are used to define exported file systems.-u
- Unexports all shared directories. The command/usr/sbin/exportfs -ua
suspends NFS file sharing while keeping all NFS daemons up. To re-enable NFS sharing, typeexportfs -r
.-v
- Verbose operation, where the file systems being exported or unexported are displayed in greater detail when theexportfs
command is executed.
If no options are passed to the /usr/sbin/exportfs
command, it displays a list of currently exported file systems.
For more information about the The Since NFSv4 no longer utilizes the An NFSv4 client now has the ability to see all of the exports served by the NFSv4 server as a single file system, called the NFSv4 pseudo-file system. On Community Enterprise Linux, the pseudo-file system is identified as a single, real file system, identified at export with the For example, the following commands could be executed on an NFSv4 server:
In this example, clients are provided with multiple file systems to mount, by using the Because of the pseudo-file systems feature, NFS version 2, 3 and 4 export configurations are not always compatible. For example, given the following directory tree:
and the export:
Using NFS version 2,3 and 4 the following would work:
Using v4 the following would work:
The difference being " Now with these exports, both "/usr/sbin/exportfs
command, refer to the exportfs
man page.
Using
exportfs
with NFSv4exportfs
command is used in maintaining the NFS table of exported file systems. When typed in a terminal with no arguments, the exportfs
command shows all the exported directories.
MOUNT
protocol, which was used with the NFSv2 and NFSv3 protocols, the mounting of file systems has changed.
fsid=0
option.
mkdir /exports
mkdir /exports/opt
mkdir /exports/etc
mount --bind /usr/local/opt /exports/opt
mount --bind /usr/local/etc /exports/etc
exportfs -o fsid=0,insecure,no_subtree_check gss/krb5p:/exports
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/opt
exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/etc
--bind
option which creates unbreakable links.
/home
/home/sam
/home/john
/home/joe
/home *(rw,fsid=0,sync)
mount server:/home /mnt/home
ls /mnt/home/joe
mount -t nfs4 server:/ /mnt/home
ls /mnt/home/joe
server:/home
" and "server:/
". To make the exports configurations compatible for all version, one needs to export (read only) the root filesystem with an fsid=0
. The fsid=0
signals the NFS server that this export is the root.
/ *(ro,fsid=0)
/home *(rw,sync,nohide)
mount server:/home /mnt/home
" and "mount -t nfs server:/home /mnt/home
" will work as expected.