pim is a library which aims at enabling the system administrator to setup a different identification policy on a per application basis, even with applications that do not provide this possibility.
pim aims to be as modular as PAM is. In fact, it has been designed as a complement of PAM, so that PAM and pim combination provides complete virtual accounting capability to applications that have not been designed with this feature. Eventually, this may end up killing the wave of code duplication for virtual accounting in countless FTP servers.
The term identification here refers to information that is usually stored in the /etc/passwd and /etc/group files on Unix systems: login name, user id, group id, user real name or comments, home directory, command interpreter, and group members. Authentification related fields (ie. passwords) are handled by pim, but are not always taken into account, as PAM may perform the authentication process.
This library can be used under GNU/Linux, FreeBSD, and NetBSD.
Because NSS is a system wide configuration system. It does not enable an administrator to configure things on a per application basis. Then, adding a user for a single application requires the creation of a standard Unix account. However, a pim module is dedicated to NSS compatibility: it is able to load and use any NSS module.
Well, what you will make it :=). Here is however a kind of todo list:
This software is release under the terms of the revised BSD license.
You may find tarballs on the download page.
The CVS repository is available at http://cvsweb.cotds.org/horde/chora/cvs.php/pim/