
This is version 1.3.7 of an YP (NIS version 2) Server for Linux, but it
also runs under other OS like SunOS 4.1.x, Solaris 2.x, AIX, HP-UX,
IRIS, Ultrix and OSF1 (alpha).

This is NOT an NIS+ (NIS version 3) Server !

See the file COPYING for copying restrictions. It is available under
the GNU General Public License. yppasswd is under the copyright from
Theo de Raadt <deraadt@fsa.ca>, look at the head of yppasswd.c.

IMPORTANT:
----------
This version caches the file handles. If you build a new map with
makedbm, add the -c flag or call makedbm -c after updating a map.

There is a new primary ftp site for ypserv:
ftp://ftp.kernel.org/pub/linux/utils/net/NIS
The old site's will not be updated any longer from me.

This version has support for the ndbm database from Sun and the
db ndbm emulation. gdbm is about 3 times faster for most YP
functions, except yp_first/yp_next. gdbm has a runtime from O(n)
for viewing all entries with this, ndbm/db has a runtime from O(n*n) !
Very bad for big maps and initgroups, initgroups will need about 22
minutes for a group file with 10.000 entries and ndbm/db, with gdbm,
only 20 seconds. The load of the server is the same, but gdbm
needs much more memory for caching.

I have a rpc.yppasswdd daemon included, which based on the
yppasswd 0.9 from Olaf Kirch. I have rewritten the update routine for
better shadow support and fix some buffer overflow problems.
A yppasswd client is in the contrib directory, which should work on all
platforms. For Linux with glibc 2.x or libc >= 5.4.36, get the
yp-tools 1.4.1. Since I have take over the maintaince of yppasswd, there
will be no new separate version. I have removed the last public version
0.10 from the ftp servers, because it was to buggy.

The NIS server can optionally do DNS lookups for hosts not found in the
regular YP hosts map. But beware that for this to work you
*must* link the YP server to a library where the gethostbyname()
and gethostbyaddr() routines always talk to a DNS server. The default
routines in the normal libc libraries often try to check the
YP servers first -> causing a nice loop...
For Linux, the functions in dns_hosts.c will do that correct, so
you could enable this feature. But this functions will not compile
under other OS then Linux. Under SunOS and Solaris you could use
the resolv+ library, I don't know if they work on other Systems.
DNS lookup is enabled by using the "-b" or "--dns" flag.
You should have a very good and fast DNS server for it, or you could
get a lot of trouble. If you don't need this feature, don't use it !

There are two ways to check if the client is allowed to ask the
ypserv daemon: "securenets" and "tcp wrapper". See the file
"README.secure" for more information.

There are known problems with Linux libc 5.0.9. You should
at least use libc 5.2.18 or greater.

1024 Byte limit in NIS protocoll:
---------------------------------
The NIS protocoll has one important limit: keys and data are limited to 1024
bytes. ypserv 1.3.7 and glibc 2.1 could handle keys and data, which is bigger
1024 bytes. This will not work with older ypserv or Linux libc versions like 
libc5 or glibc 2.0! If you use it with such systems, it will break NIS support!
I don't know, if commercial Unix versions support it.


For more NIS or NIS+ related stuff, look at
http://www.suse.de/~kukuk/linux/

Thanks to Terje Malmedal <terje.malmedal@usit.uio.no>, who had send
patches for AIX, HP-UX, IRIX, Ultrix and OSF1(alpha).

Thorsten Kukuk <kukuk@suse.de>, 29. July 1999

