# yppasswd.1

PASSWD(1)

PASSWD(1)

FreeBSD General Commands Manual

PASSWD(1)

## [名称](#__u540D___u79F0_)

`passwd`, `yppasswd` —

修改用户密码

## [概要](#__u6982___u8981_)

`passwd` \[`-l`] \[user] `yppasswd` \[`-l`] \[`-y`] \[`-d` domain] \[`-h` host] \[`-o`]

## [描述](#__u63CF___u8FF0_)

`passwd` 实用程序更改用户的本地、Kerberos 或 NIS 密码。 如果用户不是超级用户， `passwd` 首先提示输入当前密码，除非输入正确的密码，否则不会继续。

输入新密码时，输入的字符不回显，以免密码被路人看到。 `passwd` 实用程序两次提示输入新密码以检测输入错误。

密码的总长度必须小于 `_PASSWORD_LEN` （当前为 128 个字符）。

验证密码后， `passwd` 会将新密码信息传递给 Kerberos 身份验证主机。

以下选项可用：

[`-l`](#l)

导致密码仅在本地密码文件中更新，而不是在 Kerberos 数据库中更新。 仅更改本地密码时， pwd\_mkdb(8) 用于更新密码数据库。

更改本地或 NIS 密码时，根据用户登录类中的 “passwordtime” 能力设置下一次密码更改日期。

要更改另一个用户的 Kerberos 密码，必须先运行 kinit(1) ，然后运行 `passwd` 。 如果只修改本地密码，超级用户无需提供用户当前密码。

## [NIS 交互](#NIS___u4EA4___u4E92_)

`passwd` 实用程序具有对 NIS 的内置支持。 如果用户存在于 NIS 密码数据库中但本地不存在， `passwd` 会自动切换到 `yppasswd` 模式。 如果指定的用户在本地密码数据库或 NIS 密码映射中都不存在，则 `passwd` 将返回错误。

更改 NIS 密码时，非特权用户需要提供他们的旧密码以进行身份验证 rpc.yppasswdd(8) 守护程序需要原始密码才能允许对 NIS 密码映射进行任何更改）。 此限制甚至适用于超级用户，但有一个重要例外：NIS 主服务器上的超级用户绕过密码验证。 这意味着 NIS 主服务器上的超级用户可以不受限制地更改任何人的 NIS 密码。 NIS 客户端系统和 NIS 从属服务器上的超级用户仍需要提供密码才能处理更新。

支持与 NIS 一起使用的以下附加选项：

[`-y`](#y)

覆盖 `passwd` 的检查启发式并强制它进入 NIS 模式。

[`-l`](#l_2)

启用 NIS 后， `-l` 标志可用于强制 `passwd` 进入 “local only” 模式。 当存在具有相同登录名的 NIS 用户时，此标志可用于更改本地用户的条目。 例如，您有时会在 NIS 密码映射和本地用户数据库中找到系统 “placeholder” 用户（例如 bin 或 daemon ）的条目。 默认情况下， `passwd` 将尝试更改 NIS 密码。 `-l` 标志可用于更改本地密码。

[`-d`](#d) domain

指定更改 NIS 密码时要使用的域。 默认情况下， `passwd` 假定应使用系统默认域。 此标志主要供 NIS 主服务器上的超级用户使用：单个 NIS 服务器可以支持多个域。 NIS 主机上的域名也可能未设置（NIS 服务器不一定也是客户端），在这种情况下，需要告知 `passwd` 命令在哪个域上进行操作。

[`-h`](#h) host

指定 NIS 服务器的名称。 此选项与 `-d` 选项结合使用，可用于更改非本地 NIS 服务器上的 NIS 密码。 当使用 `-d` 选项指定域并且 `passwd` 无法确定 NIS 主服务器的名称时（可能是因为未设置本地域名），则假定 NIS 主服务器的名称为 “localhost” 。 这可以用 `-h` 标志覆盖。 指定的主机名不必是 NIS 主服务器的名称：给定映射的 NIS 主服务器的名称可以通过查询域中的任何 NIS 服务器（主服务器或从服务器）来确定，因此指定从服务器的名称将起作用同样好。

[`-o`](#o)

不要自动覆盖 NIS 主服务器上超级用户的密码验证检查；取而代之的是 “old” 模式。 此标志的实际用途有限，但对测试很有用。

## [文件](#__u6587___u4EF6_)

/etc/master.passwd

用户数据库

/etc/passwd

版本 7 格式的密码文件

/etc/passwd.XXXXXX

密码文件的临时副本

/etc/login.conf

登录类能力数据库

## [参见](#__u53C2___u89C1_)

chpass(1), kinit(1), login(1), login.conf(5), passwd(5), kerberos(8), kpasswdd(8), pam\_passwdqc(8), pw(8), pwd\_mkdb(8), vipw(8) Robert Morris and Ken Thompson, UNIX password security.

## [笔记](#__u7B14___u8BB0_)

`yppasswd` 命令实际上只是一个指向 `passwd` 的链接。

## [历史](#__u5386___u53F2_)

`passwd` 命令出现 Version 6 AT\&T UNIX 中。

February 14, 2014

FreeBSD 13.1-RELEASE
