This implementation of NIS for linux is based on the YP stuff for NetBSD from Theo Deraadt and an independend port of H.J. Lu. This implementation only provides NIS _clients_. You must already have a NIS server running somewhere. You can find one for linux on ftp://ftp.lysator.liu.se/pub/NYS. Please read the NIS-HOWTO, too. How to set up your system as a NIS client: 1. Set your NIS domain with domainname at boottime. Example: if [ -r /etc/defaultdomain ] ; then domainname `cat /etc/defaultdomain` fi You should create the file /etc/defaultdomain with the command echo -n your_domain_name > /etc/defaultdomain Old versions of the domainname program could not deal with a \n at the end of /etc/defaultdomain and made it part of the domainname. This is fixed in this version. Please do _not_ confuse the NIS domainname (set with the domainname command, which uses setdomainname()) with the DNS domain name (set in /etc/resolv.conf). Some distributions falsely assume these are the same. This is wrong. Make shure the NIS domainname is the name of a domain served by your NIS server. 2. Find a NIS server. Here you have 2 possibilities. If your NIS server is in your local net, you can simply start ypbind. It will use broadcast to find a server. You can check for a NIS server with the command rpcinfo -b 100007 2 With this release, you can enter the name of your NIS server to the file /etc/yp.conf. If /etc/yp.conf exists when ypbind is started, ypbind will search it for lines formed like ypserver ypbind then tests if the given servers are up and serve the NIS domain. If one of the servers responds, it will use it for all further NIS requests, else it will fallback to broadcast. This gives you the possibility to use a server behind a gateway. 3. Start ypbind The recommended way of starting ypbind is as follows: if [ -d /var/yp ] ; then /usr/sbin/ypbind ; echo ypbind fi Be sure to set the domainname before calling ypbind and to append +:*:0:0::: to /etc/passwd, and +:*:0: to /etc/group (this is for libc-4.5.26. Since this library is buggy w.r.t. NIS, please use libc-4.6.27). --- BEGIN NOTES for libc-4.6.27 --- If you are using libc-4.6.27 or above, you can just add a + to /etc/passwd or /etc/group to make all your NIS accounts available on your machine. It is possible to include oder exclude single users, too: just add +username or -username to /etc/passwd. You can even overwrite the username, directory and shell fields of the NIS entry, for example the entry: +swen::::NIS Hacker::/bin/tcsh would change the full name of swen to "NIS Hacker" and the shell to /bin/tcsh, but would leave the homedirectory to the value in the NIS entry. libc-4.6.27 supports netgroup entries in /etc/passwd and /etc/group. So if you have a netgroup power_users, you can allow the members of this netgroup access to your machine with the line +@power_users in /etc/passwd. Note, that the rcmd() routine supports netgroup entries in ~/.rhosts. So if you have a netgroup named hosts, you can have remote access to your linux machine with the line +@hosts in ~/.rhosts (this is more secure than a single +, since this would allow access with your loginname from any machine in the world, and it is simpler than putting in every single hostname you want to rlogin from). --- END NOTES for libc-4.6.27 --- Don't forget to create the directory /var/yp. Make sure the portmapper is running and the NIS domainname is set before ypbind gets started. You can use NIS for your host map by adding "nis" to the order line of /etc/host.conf. Example: order hosts nis bind multi on This will look into /etc/hosts first, then ask nis and then the domain name server. Feel free to correct any errors in the programs or documentation (including spelling and grammar!) Comments, corrections, enhancements, patches, praise, postcards, money etc. to swen@uni-paderborn.de, flames to /dev/null.