re: update on Debian/FreeBSD
> * shadow.h: FreeBSD doesn't seem to implement the standard shadow password
> functions in it's libc. (No getspnam and friends.) So far, I've learned that
> this breaks base-passwd.
note that 4.4BSD 'shadow' passwords exist in /etc/master.passwd. from this
file, /etc/passwd, /etc/pwd.db and /etc/spwd.db are generated. the former
is obvoius, the latter two are the standard and secure databases (for fast
lookup) of these, spwd.db containing the actual encrypted password entries.
both /etc/passwd and /etc/pwd.db do not have these, but getpwnam(3) and
friends will use /etc/spwd.db if it can.
this system removes the need for fucntions to update /etc/shadow (there exist
a bunch of pw_update functions in libutil, however), and also removes the
ability for /etc/passwd and /etc/shadow to become out of sync.