This is version 1.3.8 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 , 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. 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 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, with gdbm, only 20 seconds. The load of the server is the same, but gdbm needs much more memory for caching. WARNING: NEVER use libdb1/libdb2 in ndbm compat mode, this does NOT work! 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.8 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/nis/ or http://www.suse.de/~kukuk/nisplus/ Thanks to Terje Malmedal , who had send patches for AIX, HP-UX, IRIX, Ultrix and OSF1(alpha). Thorsten Kukuk , 29. July 1999