VIPW(8)

NAME
vipw - edit the password file

SYNOPSIS
vipw [-d directory]

DESCRIPTION
The vipw utility edits the password file after setting the appropriate locks, and does any necessary processing after the password file is unlocked. If the password file is already locked for editing by another user, vipw will ask you to try again later. The default editor for vipw is vi(1).

When run without options, vipw will work with the password files in /etc. The -d option may be used to specify an alternative directory to work with.

The vipw utility performs a number of consistency checks on the password entries, and will not allow a password file with a “mangled” entry to be installed. If vipw rejects the new password file, the user is prompted to re-enter the edit session.

Once the information has been verified, vipw uses pwd_mkdb(8) to update the user database. This is run in the background, and, at very large sites could take several minutes. Until this update is completed, the password file is unavailable for other updates and the new information is not available to programs.

ENVIRONMENT
If the following environment variable exists it will be utilized by vipw:

EDITOR
    The editor specified by the string EDITOR will be invoked instead of the default editor vi(1). This can be used to allow a script to non-interactively modify the password file.

PW_SCAN_BIG_IDS
    See pwd_mkdb(8).

FILES
/etc/master.passwd
    Current password file.
/etc/passwd
    Legacy password file.
/etc/ptmp
    Password lock file.
/etc/pwd.db
    Insecure password database file.
/etc/spwd.db
    Secure password database file.

SEE ALSO
chpass(1), passwd(1), passwd(5), adduser(8), pw(8), pwd_mkdb(8)

HISTORY
The vipw utility appeared in 4.0BSD.

BUGS
The mechanism for checking for password file modifications requires that the modification time of the password file changes. This means that in a default configuration where file system timestamps are not calculated with sub-second precision, EDITOR has to run for at least one second. Non-interactive editor scripts should invoke sleep(1) or equivalent to ensure this happens.