The setting is the following: I have a pool of 24 computers and about 20 students who need to be able to login at any of the computers and access their data. Basically the normal setup of a computer pool. Of course there are many solutions for this problem (LDAP and so on), but of course it is more fun to create your own solution!
The basic idea is that the home directories are loaded from the server and overwrite the home directories of the clients. The accounts are created directly on each computer, but a user has the same user ID on every computer, so that the mapping of permissions works.
Now for the details. First the server. As a first step, install the NFS server package:
apt-get install nfs-kernel-server
Configure what should be exported. This is done in the file etc/exports
:
vi /etc/exports
We want to export the folder /home/
and make it available for all computers in our pool (the subnet 1.22.333.*
– of course that’s not the correct IP). So we add this line to the file:
/home/ 1.22.333.0/255.255.255.0(rw,async)
We re-read the configuration to let the changes take effect:
exportfs -ra
Now we can check if the correct folder is exported:
exportfs -v
Finally, we create all student accounts on the server. This will also create a home directory for each one. We use fixed user IDs, so for example we will have hans
with UID 1010, lisa
with UID 1011, kim
with UID 1012, and so on.
Now for the clients, where as a first step we need to install the NFS package for the client:
apt-get install nfs-common
Now we could mount the exported folder from the server by hand, but because we want to mount them permanently, we will use the global fstab
file for this:
vi /etc/fstab
In this file, insert the following line (where 1.22.333.4 is the server IP):
1.22.333.4:/home/ /home/ nfs rw,soft 0 0
Restart the computer for the changes to take effect. And finally, again, we need to create all student accounts on each computer and take care to assign the same UID.