Linux NFS Export / share directory to other UNIX / Linux computer

Posted on in Categories , , , , , , , last updated July 12, 2007

Q. I’m using CentOS 5 Linux 64 bit version. How do I share directory called /data2 to all other UNIX / Linux computers?

A. NFS (Network file system) is both a protocol and file system for accessing and sharing file systems across a computer network using UNIX and Linux. NFS v4 is used in modern Linux distributions. It offers performance improvements, mandates strong security, and introduces a stateful protocol etc.

How do I export a directory with NFS?

In order to export or share directory called /data2, you need to edit a file called /etc/exports. The file /etc/exports serves as the access control list for file systems which may be exported to NFS clients.:
# vi /etc/exports
Add config directive as follows:
/data2 *(rw,sync)

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.

Where,

  • rw – Allow both read and write requests on /data2 NFS volume
  • sync – Reply to requests only after the changes have been committed to stable storage

Save and close the file. Restart the nfs service:
# /etc/init.d/nfs restart

NFS client configuration

Client computer need to mount file system using mount command or /etc/fstab file, enter:
# mkdir /mnt/nfs
# mount -t nfs4 nfsserver-name-or-ip:/data2 /mnt/nfs

Read the man page for more configuration options:
$ man exports

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

10 comment

  1. Thanks, your steps were so simple and worked for me. The only change I had to do was run this: “mount -t nfs nfsserver-name-or-ip:/data2 /mnt/nfs” in the last step(“nfs” instead of “nfs4”). My Linux was 32-bit platform.

  2. The above information is actually for advanced admin who already knew what to do after..
    This is for we the beginners:
    1. make sure you have both the ipaddress and the hostname of the machine you want your directory to be shared with in /etc/hosts
    2. The file is /etc/exports is not created by default so you have to create it by vi into /etc/exports. when you vi, this file will be created; now press the letter i on you keyboard wile you are in vi to put you in insert mode..
    3. now enter the name of the directory or file that you want to share starting with a forward slash. tab once to enter the hostname or ipaddress of the machine whose name and ipaddress was entered in /etc/hosts followed by (rw, ro, sync)
    for instance, /share chilly(rw,sync). in this example, /share is the directory that i want to share. chilly is the hostname of the machine i want to share /share directory with which must be in /etc/hosts file.. rw is the permission which is granted to chilly.. sysn is to reply to requests only after the changes have been committed to stable storage. save and exit vi.. now share the exports file bu running this command /usr/sbin/exportfs -a

  3. Setup works. But got a problem. From the Client’s directory I want to get the permission to move files to another directory. How is it possible? with the current setup I cant perform it. Please help.

    Thanks in advance.

Leave a Comment