nss-multidomain: NSS module for multidomain authentification

################################################################
1 - Introduction

This name service switch (NSS) module solves the common problem of
potential login name collisions when hosting users from several
domains on the same server. No longer need to use a prefix or suffix
and hide it everywhere the login appear, you can simply have several
password files. The right DB passwd file used depends on
$ENV{VIRTUAL_DOMAIN}, here is a short example :

	$ export VIRTUAL_DOMAIN=domain1
	$ echo ~foo
	/home/domain1/foo

[/var/db/domain1/passwd.db was used]

	$ export VIRTUAL_DOMAIN=domain2
	$ echo ~foo
	/home/domain2/foo

[/var/db/domain2/passwd.db was used]

Once the library installed, you simply have to configure your deamons
to have the $ENV{VIRTUAL_DOMAIN} variable nicely defined depending on
the domain.

################################################################
2 - Quick installation

	./configure
	make
	make install [as root]

If the DB file type is not specified during configure with '--with-dbtype',
the default DB file type is BTREE. 

Then edit your /etc/nsswitch.conf and add 'multidomain' to you NSS
'passwd' service. Save the file and restart INETD or other daemon
using the NSS service to make the changes active.

For each of the local domains, create a btree or hash password file in
the $(DBDIR)/$(DOMAIN_NAME)/ directory.

Warning!
    When creating the DB files make sure that the resulting DB file's
    version is the same with the version of the libdb which was used
    to link the nss-multidomain module.  The Berkely DB library has no
    backward compatibility between versions (eg. applications using
    libdb3 cannot handle files created with libdb2 versions and so
    on).  To avoid those types of problems, use the small and simple
    utility called 'make-db' found in the src/ directory after
    building the package.  This utility will use the same version of
    libdb like the nss-multidomain module while creating DB files.
    Read README.makedb for more informations.
     
For more information about the installation, please look at the
INSTALL and README.makedb file.

################################################################
3 - How to make a release ?

This command will build a .tar.gz and a .tar.bz2 files in ../

$ make VERSION=1.0 dist

################################################################
4 - Trouble shooting

Check if the version of the DB file used is the same with the version
of Berkeley libdb

Recompile with the '--enable-debug' configure option and watch the
syslogd logs.

Email the author, Antoniu-George SAVU at santoniu@netcontents.net with
subject: 'SUCKER!' and a detailed description of the problem
encountred in the body (attach the db files used, anything you might
feel it usefull...movies, MP3's, funny pictures, etc..).

Pray and drink a beer.

################################################################
5 - Thanks

The list is incomplete. 

First thanks to Thierry Delamare (thy@zehc.net) who came up with this
idea. Second, I would like to thank to my project manager, Hamdouni El
Bachir (bach@zehc.net) for his support. At last but not at least,
thanks to all the beta-testers at Chez.Com and Libertysurf.

You were and are just great. 

The the AUTHORS file for more informations.

^EOT  AGS (santoniu at netcontents.net) Autumn-Winter, 2000
