OpenBSD manual page server
PWD_MKDB(8) OpenBSD System Manager's Manual PWD_MKDB(8)
pwd_mkdb - generate the password databases
pwd_mkdb [-c] [-p] [-d directory] [-u username] file
pwd_mkdb creates db(3) style secure and insecure databases for the speci-
fied file. These databases are then installed into /etc/spwd.db and
/etc/pwd.db, respectively. The file is installed into
/etc/master.passwd. The file must be in the correct format (see
passwd(5)). It is important to note that the format used in this system
is different from the historic Version 7 style format.
The options are as follows:
-c Check if the password file is in the correct format. Do not
change, add, or remove any files.
-p Create a Version 7 style password file and install it into
Operate in a base directory other than the default of /etc. +.It
Fl u Ar username Only update the record for the specified user.
Utilities that operate on a single user can use this option to
avoid the overhead of rebuilding the entire database. This op-
tion must never be used if the line number of the user's record
in /etc/master.passwd has changed.
file The absolute path to a file in master.passwd format, as described
The two databases differ in that the secure version contains the user's
encrypted password and the insecure version has an asterisk (`*').
The databases are used by the C library password routines (see
pwd_mkdb exits zero on success, non-zero on failure.
/etc/master.passwd current password file
/etc/passwd a Version 7 format password file
/etc/pwd.db insecure password database file
/etc/pwd.db.tmp temporary file
/etc/spwd.db secure password database file
/etc/spwd.db.tmp temporary file
Because of the necessity for atomic update of the password files,
pwd_mkdb uses rename(2) to install them. This, however, requires that
the file specified on the command line live on the same file system as
the /etc directory.
There are the obvious races with multiple people running pwd_mkdb on dif-
ferent password files at the same time. The front-ends to pwd_mkdb,
chpass(1), passwd(1), and vipw(8) handle the locking necessary to avoid
Previous versions of the system had a program similar to pwd_mkdb,
mkpasswd(8), which built dbm(3) style databases for the password file but
depended on the calling programs to install them. The program was re-
named in order that previous users of the program not be surprised by the
changes in functionality.
chpass(1), passwd(1), db(3), getpwent(3), passwd(5), vipw(8)
OpenBSD 2.9 June 6, 1993 2