I recently setup a network using NIS & NFS with Mandriva Linux (Running KDE) as the server and workstation OS. I chose to have Linux installed on each workstation (rather than using LTSP), as the machines are reasonable in specifications.
When completed the workstations now show the list of users on the login screen. Users can login to any of the workstations and get their desktop complete with all their settings (background, themes, email setup, etc). This makes for a very flexible setup where if one workstation fails the user can simply logon somewhere else until the workstation is fixed. It also means that all user data and configuration is stored centrally on the server.
These instructions refer specifically to Mandriva 2010 (or Mandriva 2009) but the setup would be very similar for other Linux flavours. You should open a console as root or su to root to issue these commands. I use ‘vi’ to edit the configuration files but you could also use ‘nano’ or ”kwrite’ if you like.
Install the packages: ‘ypserv’ and ‘rpcbind’ (or ‘portmap’ for Mandriva 2009):
# urpmi ypserv rpcbind
Make sure that the services are set to start on bootup:
# chkconfig –level 345 ypserv on
# chkconfig –level 345 rpcbind on (or portmap for Mandriva 2009)
Set the domain name (not the internet domain name, just the NIS domain name used internally). I just used “server” for simplicity :-
Add “NISDOMAIN=server” to the end of the “/etc/sysconfig/network” file.
Issue the command “domainname server”
(Note that I do both of the above as I noticed that just using the domainname command worked but seemed to be forgotten later. To check that your domainname is still set just issue the “domainname” command with no parameters).
Make the user home directory mount point. I use /export/home rather than /home to save confusion later on:
# mkdir -p /export
# mkdir /export/home
If you have existing accounts in /home on the server that you wish to move to /export/home:
# mv /home/fred /export/home (Move Fred’s account)
For all moved users edit the /etc/passwd to set the new path. Note that I set all “exported” user ids to 600 or over so that we can selectively export only the users over 600 and excude the local users from 500 to 599
ie. fred:x:600:600:Fred Flintstone:/export/home/fred:/bin/bash
Create (or add to) the /etc/exports file. The following example assumes you are using the 192.168.1.x network. The first line exports the home directories of all users, the following optional lines show how to export a few other shared directories if needed:
/export 192.168.1.0/24(rw,no_root_squash,no_subtree_check,sync)
/data/public *(no_all_squash,sync,secure,rw)
/data/office *(no_all_squash,sync,secure,rw)
/data/admin *(no_all_squash,sync,secure,rw)
Make the NIS maps. This also needs to be run after adding, changing or removing users. Note that I set MINUID and MINGID to 600 in the /var/yp/MakeFile so that users 500 to 599 are not shown:
# cd /var/yp
# make
That’s the server configuration complete. You can now add new users if required, when adding them set their home directory to /export/home/{username} (you may need to mkdir the directory before adding the user) and their userid/groupid to 600+. You can now either start the required services (ypserv, rpcbind, portmap) or just restart the server and you’re ready to go.
Install the packages ‘ypbind’, ‘autofs’ and ‘rpcbind’ (or ‘portmap’ for Mandriva 2009):
# urpmi ypbind autofs rpcbind
Make sure that the services are set to start on bootup:
# chkconfig –level 345 ypbind on
# chkconfig –level 345 autofs on
# chkconfig –level 345 rpcbind on (or portmap for Mandriva 2009)
Set the domain name (not the internet domain name, just the NIS domain name used internally). I just used “server” for simplicity :-
Add “NISDOMAIN=server” to the end of the “/etc/sysconfig/network” file.
Issue the command “domainname server”
Add nis to the following entries in /etc/nsswitch.conf as follows:
passwd: nis files
shadow: nis files
group: nis files
automount: files nis
Add to end of /etc/yp.conf:
ypserver 192.168.1.2 (Use your servers IP address here)
Add to end of /etc/autofs/auto.master:
/export auto.export –timeout 30
Create auto.export with the contents:
home -fstype=nfs,rsize=8192,wsize=8192,nosuid,nolock 192.168.0.2:/export/home
mkdir -p /export
Finally switch off auto-login (if enabled) in Control Centre.