From CDOT Wiki
Revision as of 13:28, 4 September 2019 by Peter.callaghan (talk | contribs) (Fixing formatting)
Jump to: navigation, search

OPS535 Lab 2


Network File System (NFS) allows you to access files on remote hosts in exactly the same way you would access local files. It was originally created by Sun Microsystem and the implementation on Linux is largely by Rick Sladkey, who wrote the NFS kernel code and large parts of the NFS server. For more information about NFS, please refer to Chapter 14 of the online Network Administrator guide. You should also study chapter 23 of the course text book on NFS for this Lab. Designate vm2 as the NFS server.


The pre-lab must be complete so that your virtual machines share access to a private network. Create a new user on each of your virtual machines using your own Seneca login.

Investigation 1: NFS Server Setup

Perform the following steps on vm2:

  1. Login to your machine as a regular user and enter the following command su -
  2. Enter the command rpcinfo -p
  3. Study the output and make notes of the first few lines. You should see two lines that end with the word "portmapper". If you don't, there is something wrong with your system, your system will not be able to provide NFS service. Ask for help if this is the case.
  4. You should also see a line or two (or even more) that contains the word "nfs". If you don't, NFS is not running. If NFS is not running, you can start up NFS with the command:
    systemctl start nfs-server
  5. Create a directory named "/nfs-pub". Enter the command:
    mkdir /nfs-pub
  6. Change the file permission on "/nfs-pub" so everyone can read/write/list. Enter the command:
    chmod 777 /nfs-pub
    Make sure to double check that the file permissions have been set correctly.
  7. To set the sticky bit on the directory "/nfs-pub" , use the command <sourse>chmod +t /nfs-pub</source>
  8. Edit your /etc/exports file and insert the following lines:
    /nfs-pub ip-of-vm1(rw,root_squash)
     /nfs-pub ip-of-vm3(rw,root_squash)
    "ip-of-vm1" should be replaced by the actual IP address of vm1 (VM1),and "ip-of-vm3" should be replaced by the actual IP address of vm3 (VM3).
  9. Enter the command
    exportfs -a
    to tell your NFS server to re-read the configuration file (/etc/exports) and take the appropriate action, i.e. to export the directory /nfs-pub to the specific host.
  10. Enter the command
    showmount -e
    Make notes of the output and consult the man page of showmount to find out the purpose of this command.
  11. Use the command "exit" to leave the super user shell and switch back to the regular user shell. Enter the command
    to confirm your user id. Write down your user name, user ID and group ID.
  12. Copy the file /etc/passwd into directory /nfs-pub as passwd.S. Enter the command
    cp /etc/passwd /nfs-pub/passwd.S
  13. Finally, confirm the file copying with the "ls -l" command and make notes of the output.
  14. Modify the firewall on your server to allow incoming nfs traffic in your internal zone. Make sure this change persists past reboot.

Investigation 2: File ownership of new files created on NFS shares

Investigation 3: File creation permission and user name mapping on NFS shares

Completing the Lab

You should now have a common part of the filesystem available to all three vms. Files you store there on one machine will be accessible for the other machines too. Note that this should only be available when using your internal, statically assigned addresses. You have also explored how access permissions are used between the machines, and since this service relies on UIDs accessed on each machine, keeping them synchronized between machines becomes vital. In a future lab we will explore a service that will manage that aspect of our networks.

Follow the instructions on blackboard to submit the lab.

Exploration Questions

  1. What is the purpose of the "su -" command?
  2. What is the purpose of the "rpcinfo -p" command?
  3. What information is stored in the /etc/exports file?
  4. What information is provided by the "showmount -e" command?
  5. Did your Linux kernel have NFS support compiled in?
  6. What is the full path name of the nfs module file? i.e. where is it on your hard drive?