vitalnix user management suite


Get Vitalnix at SourceForge.net. Fast, secure and Free Open
Source software downloads
Support This Project

Description

The Vitalnix User Management Suite is a collection of programs and libraries that implement frontend access to databases storing UNIX user and group accounts.

Support

The best way to get in touch with the developer is through the vitalnix-user mailing list.

Latest release

The latest tarball release is 3.2.0 which you may find in the Files section.
The very latest code is available through the GIT repository.
Clone URL: git://vitalnix.git.sf.net/gitroot/vitalnix

News

February 19, 2009

With the introduction of Git on SourceForge, the authoritative repository joins the project home and is now on SF too!

 

Limits of existing software

A lot of user account maintenance programs I have come across use NSS (“getpwent”) for retrieving information and issue backend-specific (shadow, LDAP) commands for write operations, such as adding, modifying or deleting a user or group.

The standard NSS API is neither thread-safe nor multi-use safe (a single thread, but intertwined invocations of functions). The GNU libc thread-safe extensions do not cover all functions, for example setpwent(). Write support is totally absent from NSS — libc has a mere putpwent() which requires a stdio file handle, which of course does not work with other storage methods such as LDAP or MYSQL.

So most programs implement their own write handling, each coming with its own bulk of bugs, limitations or configuration files (and Vitalnix is surely no different). And sometimes you just do not trust these programs especially when they ask for information that would normally not be required to perform a given task.

Current project status

Vitalnix provides a library, libvxdb, which encapsulates away the underlying storage mechanism and provides generalized methods of basic operations such as “add a user”, modify, delete. With regard to user/group information retrieval, it is mostly equivalent to NSS, but is designed with thread-safety and multi-use safety in mind from the beginning. I consider the API and code to be rather clean compared to NSS and pwdutils.

Vitalnix is not the solution to everything. For example, it does not allow you to add arbitrary attributes to a user account, even if the underlying storage mechanisms could be adopted to do so. The primary focus on providing a simple (ideally) API and tools to get a typical essential server system (e.g. Windows network logon with SMB) working.

The Vitalnix package is considered to be in beta stage. It works for what we do with it, but it has yet to see widespread usage.

Of course, there is a bit more than just libvxdb. SAMBA Logon Time Restriction and Print Accounting are two parts for example, which are not directly related to user management, but they were nonetheless needed.

Refer to the following subsections and the linked manpages for further reading.

Table of contents

Follow the link to see the table of contents of the documentation. Full documentation is available in the tarball when built.