> For the complete documentation index, see [llms.txt](https://man.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://man.bsdcn.org/man8/vipw.8.md).

# vipw(8)

`vipw` — 编辑密码文件

## 名称

`vipw`

## 概要

`vipw [-d directory]`

## 描述

`vipw` 工具在设置适当的锁之后编辑密码文件，并在密码文件解锁后执行任何必要的处理。如果密码文件已被其他用户锁定以进行编辑，`vipw` 将要求你稍后再试。`vipw` 的默认编辑器是 [vi(1)](/man1/vi.1.md)。

不带选项运行时，`vipw` 将处理 **`/etc`** 中的密码文件。可以使用 `-d` 选项指定要处理的备用 `directory`。

`vipw` 工具对密码条目执行多项一致性检查，不允许安装带有“损坏”条目的密码文件。如果 `vipw` 拒绝新密码文件，将提示用户重新进入编辑会话。

一旦信息经过验证，`vipw` 使用 [pwd\_mkdb(8)](/man8/pwd_mkdb.8.md) 更新用户数据库。此操作在后台运行，在非常大的站点上可能需要几分钟。在此更新完成之前，密码文件不可用于其他更新，新信息对程序也不可用。

## 环境变量

如果存在以下环境变量，`vipw` 将使用它：

**`EDITOR`** 由字符串 `EDITOR` 指定的编辑器将代替默认编辑器 [vi(1)](/man1/vi.1.md) 被调用。这可用于允许脚本以非交互方式修改密码文件。

**`PW_SCAN_BIG_IDS`** 参见 [pwd\_mkdb(8)](/man8/pwd_mkdb.8.md)。

## 文件

**`/etc/master.passwd`** 当前密码文件。 **`/etc/passwd`** 传统密码文件。 **`/etc/ptmp`** 密码锁文件。 **`/etc/pwd.db`** 不安全密码数据库文件。 **`/etc/spwd.db`** 安全密码数据库文件。

## 参见

[chpass(1)](/man1/chfn.1.md), [passwd(1)](/man1/passwd.1.md), [passwd(5)](/man5/passwd.5.md), [adduser(8)](/man8/adduser.8.md), [pw(8)](/man8/pw.8.md), [pwd\_mkdb(8)](/man8/pwd_mkdb.8.md)

## 历史

`vipw` 工具出现于 4.0BSD。

## 缺陷

检查密码文件修改的机制要求密码文件的修改时间发生变化。这意味着在文件系统时间戳不以亚秒精度计算的默认配置中，`EDITOR` 必须运行至少一秒钟。非交互式编辑器脚本应调用 [sleep(1)](/man1/sleep.1.md) 或等效命令以确保这一点。
