---
name: "vipw"
section: "8"
platform: "macos"
package: "system_cmds"
version: "1042.120.1"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/vipw"
---

# vipw(8)

edit the password file

## 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)](/vi/1.md).

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)](/pwd_mkdb/8.md) 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)](/vi/1.md). This can be used to allow a script to non-interactively modify the password file.

- PW\_SCAN\_BIG\_IDS

  See [pwd\_mkdb(8)](/pwd_mkdb/8.md).

## SEE ALSO

[chpass(1)](/chpass/1.md), [passwd(1)](/passwd/1.md), [passwd(5)](/passwd/5.md), [pwd\_mkdb(8)](/pwd_mkdb/8.md)

## 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)](/sleep/1.md) or equivalent to ensure this happens.
