FAQ : install : mailing list : contact
Userdir is so far not much more than a proof-of-concept drop-in replacement for FreeBSD's getpwent.c, but I believe it has the potential to displace /etc/password (and its friends like /etc/master.passwd and vipw).
The idea behind it is simple: rather than have one flat root-owned file containing the entire user database, userdir takes advantage of the powerful hierarchical database that is the Unix filesystem. Each login name has its own directory, and each field in struct passwd is represented inside that directory by an appropriately named text file. For example, user "bob"'s shell is in /etc/users/bob/SHELL and his home directory is in /etc/users/bob/DIR. And you can find his UID in /etc/users/bob/UID. His crypted password is in /etc/users/bob/PASSWD, and since by default this file is mode 0400 and owned by root, there's no need for a separate "shadow" password file. Of course the system administrator is free to give "bob" (or bob's boss) read and/or write access to this file, paving the way for a (still vaporware) passwd utility that doesn't need its setuid bit set.
And that's just one of many things that are easy to do with userdir that are either difficult or not possible at all with a traditional /etc/passwd system.
If you have a FreeBSD 4.x system that you're willing to experiment with, install the code and help me improve it. It's under a BSD-type license. Or if you like, rewrite it completely since it's really not very complicated and you're probably a better C programmer than I am.
Try writing an NSS module, if you are running a system that supports such things, that implements userdir. M.J. Pomraning is working on a Linux implementation.
If you are running NetBSD, OpenBSD, or FreeBSD-CURRENT, try implementing userdir under that version of NSS.
Some important commands need to become "userdir-aware" like passwd and adduser (and useradd on Linux).
Consider ways of replacing other flat systems files like /etc/group with a directory hierarchy.
I welcome your questions, comments, and code: 1be9a9fe60ba36aa6c90a0f1ab373887@e856d72c510137116ed7414755217d8f.tmetic.com, but read the FAQ first, and consider joining the mailing list.