Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PWD_MKDB(8)		FreeBSD	System Manager's Manual		   PWD_MKDB(8)

     pwd_mkdb -- generate the password databases

     pwd_mkdb [-CiNp] [-d directory] [-s cachesize] [-u	username] file

     The pwd_mkdb utility creates db(3)	style secure and insecure databases
     for the specified 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.

     -N	   Tell	pwd_mkdb to exit with an error if it cannot obtain a lock on
	   the file.  By default, we block waiting for a lock on the source
	   file.  The lock is held through the rebuilding of the database.

     -p	   Create a Version 7 style password file and install it into

     -i	   Ignore locking failure of the master.passwd file.  This option is
	   intended to be used to build	password files in the release process
	   over	NFS where no contention	can happen.  A non-default directory
	   must	also be	specified with the -d option for locking to be ig-
	   nored.  Other use of	this option is strongly	discouraged.

     -d	directory
	   Store databases into	specified destination directory	instead	of

     -u	username
	   Only	update the record for the specified user.  Utilities that op-
	   erate on a single user can use this option to avoid the overhead of
	   rebuilding the entire database.

     -s	cachesize
	   Specify in megabytes	the size of the	memory cache used by the hash-
	   ing library.	 On systems with a large user base, a small cache size
	   can lead to prohibitively long database file	rebuild	times.	As a
	   rough guide,	the memory usage of pwd_mkdb in	megabytes will be a
	   little bit more than	twice the figure specified here.  The default
	   is 2	megabytes.

     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

     The pwd_mkdb utility exits	zero on	success, non-zero on failure.

     If	the PW_SCAN_BIG_IDS environment	variable is set, pwd_mkdb will sup-
     press the warning messages	that are normally generated for	large user and
     group IDs.	 Such IDs can cause serious problems with software that	makes
     assumptions about the values of IDs.

     /etc/pwd.db		       The insecure password database file.
     /etc/pwd.db.tmp		       A temporary file.
     /etc/spwd.db		       The secure password database file.
     /etc/spwd.db.tmp		       A temporary file.
     /etc/master.passwd		       The current password file.
     /etc/passwd		       A Version 7 format password file.

     Regenerate	the password database after manually editing or	replacing the
     password file:

	    /usr/sbin/pwd_mkdb -p /etc/master.passwd

     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)

     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
     this problem.

FreeBSD	13.0		       October 20, 2018			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help