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 100004 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 <Name_of_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).
ATTENTION! Do not use this entry for libc 4.6.30 and above, it will prevent
everyone from login, since the pw_passwd entry will get overwritten with the
star. Use a line with a single + instead.


--- 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 passwd, 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.

NOTE: For libc-4.6.30 and above this will work for the general entry
+::::::
too, so don't use
+:*:::::
since it will overwrite the pw_passwd field on all NIS entries and
prevent login.

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.

