命令行手册

Man » passwd 手册在线 - passwd 手册页的详细在线文档

🌍
passwd - 更改用户密码

概要

passwd [选项] [登录名]

描述

passwd 命令更改用户帐户的密码。普通用户只能更改其自身的密码,而超级用户可以更改任何帐户的密码。passwd 还会更改帐户或关联密码的有效期。

密码更改

如果帐户具有非空密码,系统首先提示用户输入其当前密码。输入的密码将被加密并与存储的值进行比较。用户只有一次尝试输入正确密码的机会。超级用户可以跳过此步骤,以允许更改忘记的密码。

密码输入后,将检查密码老化信息,以确定用户是否允许在此时间更改密码。如果不允许,passwd 将拒绝更改密码并退出。

然后,系统会提示用户两次输入新的密码。第二次输入将与第一次输入进行比较,并且为了更改密码,两者都需要匹配。

然后,系统会对密码进行复杂性测试。passwd 会拒绝不符合复杂性要求的密码。不要包含系统默认的删除或终止字符。

用户密码提示

密码的安全性取决于加密算法的强度和密钥空间的大小。遗留的 UNIX 系统加密方法基于 NBS DES 算法。现在建议使用更新的方法(请参见 ENCRYPT_METHOD)。密钥空间的大小取决于所选密码的随机性。

密码安全方面的漏洞通常是由粗心的密码选择或处理造成的。因此,不应选择出现在词典中的密码,也不应选择必须写下的密码。密码也不应是人名、您的许可证号、出生日期或街道地址。这些都可能被用作猜测来破坏系统安全。

作为一般指导原则,密码应该很长且随机。如果这有助于记住更长的密码,可以使用简单的字符集,例如仅由小写字母组成的密码。对于仅由随机选择的小写英文字母组成的密码,长度为 32,则有 26^32(大约 2^150)个不同的组合。由于这是一个指数方程,因此很明显,指数(长度)比基数(字符集的大小)更重要。

您可以在以下网址找到有关如何选择强密码的建议: https://en.wikipedia.org/wiki/Password_strength

选项

适用于 passwd 命令的选项包括:

-a, --all

此选项只能与 -S 一起使用,用于显示所有用户的状态。


-d, --delete

删除用户的密码,使其变为空。此命令将帐户设置为无密码。

-e, --expire

立即使帐户的密码失效。实际上,这可以强制用户在下次登录时更改密码。

-h, --help

显示帮助消息并退出。

-i, --inactive INACTIVE

此选项用于在密码过期一定天数后禁用帐户。在用户帐户的密码过期 INACTIVE 天后,用户将不再能够登录该帐户。

-k, --keep-tokens

指示密码更改应仅针对过期的身份验证令牌(密码)执行。用户希望保留其未过期的令牌不变。

-l, --lock

锁定指定帐户的密码。此选项通过将密码更改为与任何可能的加密值不匹配的值(在密码开头添加一个“!”)来禁用密码。

请注意,这不会禁用帐户。用户仍然可以使用其他身份验证令牌(例如 SSH 密钥)登录。要禁用帐户,管理员应使用 usermod --expiredate 1(这将帐户的过期日期设置为 1970-01-02)。

具有已锁定密码的用户不允许更改其密码。

-n, --mindays MIN_DAYS

设置密码更改之间的最短天数为 MIN_DAYS。此字段的值为零表示用户可以随时更改密码。

-q, --quiet

静默模式。

-r, --repository REPOSITORY

在 REPOSITORY 存储库中更改密码

-R, --root CHROOT_DIR

在 CHROOT_DIR 目录中应用更改,并使用来自 CHROOT_DIR 目录的配置文件。仅支持绝对路径。

-P, --prefix PREFIX_DIR

将更改应用于在根文件系统中位于 PREFIX_DIR 目录下的配置文件。此选项不执行 chroot,而是用于准备交叉编译目标。存在一些限制:NIS 和 LDAP 用户/组未经过验证。不支持 PAM。不支持 SELINUX。

-S, --status

显示帐户状态信息。状态信息由 7 个字段组成。第一个字段是用户的登录名。第二个字段指示用户帐户是否具有锁定的密码 (L)、没有密码 (NP) 还是具有可用的密码 (P)。第三个字段是上次密码更改的日期。接下来的四个字段分别是密码的最小年龄、最大年龄、警告期和不活动期,以天为单位。

-u, --unlock

解锁指定帐户的密码。此选项通过将密码恢复到其先前值(在应用 -l 选项之前的状态)来重新启用密码。

-w, --warndays WARN_DAYS

设置在需要更改密码之前的天数。WARN_DAYS 选项是在用户收到密码即将到期警告之前的天数。

-x, --maxdays MAX_DAYS

设置密码的有效最大天数。超过 MAX_DAYS 后,需要更改密码。

将 -1 作为 MAX_DAYS 传递会移除密码有效性检查。

-s, --stdin

此选项用于指示 passwd 应该从标准输入读取新密码, 这可以是管道。

注意事项

密码复杂性检查可能因站点而异。 建议用户选择一个他们认为足够复杂的密码。

如果启用了 NIS 并且用户未登录到 NIS 服务器,则用户可能无法在系统上更改其密码。

passwd 使用 PAM 来验证用户并更改其密码。

文件

/etc/passwd

用户帐户信息。

/etc/shadow

安全的用户帐户信息。

/etc/pam.d/passwd
passwd 的 PAM 配置文件。

退出值

passwd 命令以以下值退出:

0   成功

1   权限被拒绝

2   选项的无效组合

3   意外失败,未执行任何操作

4   passwd 文件丢失,发生意外失败

5   passwd 文件繁忙,请重试

6   选项的参数无效

10 [pam]({filename}../../pam)(3) 返回了一个错误

参见

chpasswd(8), makepasswd(1), passwd(5), shadow(5), usermod(8)。

以下网页以幽默(但准确)的方式比较了两种选择密码的方法的强度:“https://xkcd.com/936/”