The idea of a NFS server appeals to me as not only will it allow native Linux shares (not relying on Samba) but will also allow me to centralise home directories and hopefully create true roaming profiles. Essential tools in a server’s armoury. I am working from tutorials found at ubuntuguide here and ubuntugeek here.
The first thing I need to do is set up the NFS server module on the server machine.
1. Type sudo apt-get install nfs-kernel-server
2. Type sudo dpkg-reconfigure portmap and it asks whether I want to bind to loopback and I select no. It then informs me I need to restart the service.
3. Restart using sudo /etc/init.d/portmap restart and it restarts beautifully.
Configure the NFS Server
1. As I don’t have a gui on the server, I’m going to try the work from Webmin.
2. I click on Networking>NFS Exports
3. I have no idea which NFS version I have installed so I’ll leave the 4 box ticked. Under Directory to export, I type /gary to try and make a network-wide home directory for myself. I assume I’ll have to make this directory manually, but I live in hope so I’ll continue with this export definition and see what happens.
4. I notice that It is Active and exported to Everyone – not sure about everything else in this category so I’ll leave it alone.
5. Under Export security, I tick No for Read-only (I want to be able to write to my home directory).
6. I don’t understand anything else so I’ll leave it all alone and click Create at the bottom of the screen.
7. As I guessed, It says directory does not exist. Ho hum. OK. I’ll go to File Manager and create it before trying again.
8. I create a new directory /export and then another in there, /gary. While I’m here I also create directories for my other users.
9. Back to NFS Exports and repeat 3-6. Mmmm – try something else, I delete the /export in NFSv4 Pseudofilesystem and add /export/gary to Directory to export. Check No for read-only and then click Create. This seems to work, the directory has gone green in file manager.
Installing the NFS Client
1. Back on my desktop, I open a terminal and type sudo apt-get install portmap nfs-common
2. Now to try and mount the share in my home directory. I type sudo mount 192.168.1.8:/export/gary /home/gary and it tells me permission denied. Drat!
3. I change the permission of the folder to 077 (all write) and the group to users and it still does not work.
Another Share method
From here, I’m going to try:
1. Go to File Manager in Webmin
2. Edit the file /etc/exports and add the line /export/files 192.168.1.1/254(rw,no_root_squash,async)
3. This shows up in Webmin’s NFS Exports as Network 192.168.1.1/254 as the Exported to.. entry.
4. Just going to create that directory first and then see if I can edit the /home/gary entry to reflect the network line.
5. Oh, and test it:)
6. Right, under the files Export tab, the Export to… field is set to IPv4 = 192.168.1.1 and Netmask = 254. So, I’ll change to the same values for the home share. That wasn’t accepted as it said 254 isn’t a valid netmask (which it’s not) but that is what it shows for the files export .. huh? I’ll also turn off the Clients must be on secure port radio button.
7. Let’s go and have a look at /etc/exports again. I’ll manually change the line to match the ‘files’ line, i.e. add 192.168.1.1/254(rw,no_root_squash,async) instead of (rw)
Finally! A Method that works!
I deleted all my previous attempts at adding Export shares under Webmin and went to create a new one with the following settings:-
1. NFS Version = 3
2. NFSv4 Pseudofilesystem.. = blank
3. Directory to export = /export/files
4. Active = Yes
5. Export to = IPv4 Network, IP = 192.168.1.0, Netmask = 255.255.255.0
6. Security level = None
7. Read-only = No
8. Clients on secure port = No
9. Disable subtree checking = No
10. Hide the filesystem = No
11. Immediately sync all writes = Yes
12. Trust remote users = Everyone
All other settings are default. Now when I sudo mount 192.168.1.8:/export/files /home/gary/files – it works!
I have just found out that NFS doesn’t validate users, just the hostnames or IPs of the workstations connecting to the server, so quite how I’m going to use it to centralise home directories, I don’t know yet.