「passwd(8)」-

修改用户密码

命令语法格式

passwd [options] [LOGIN]

命令描述

命令passwd更改用户帐户的密码。普通用户只能更改自己帐户的密码,而超级用户可以更改任何帐户的密码。命令passwd也改变了帐户或相关密码的时效信息。

修改密码的操作流程

如果存在用户,则首先提示用户输入TA的旧密码,然后加密该密码并与存储的密码进行比较,用户只有一次机会输入正确的旧密码。超级用户是允许绕过此步骤,以便可以更改忘记的密码。

输入密码后,将检查旧密码的信息,以查看此时是否允许用户更改密码。如果不允许,则命令passwd拒绝更改密码,并退出。

如果旧密码检查通过,则提示用户输入新密码和确认密码。新密码与确认密码进行比较,两者相同时才能更改密码。

然后,命令会测试密码的复杂性。作为一般准则,密码应包含6到8个字符,包括以下每个字符集中的一个或多个字符:

  • 小写字母
  • 数字0到9
  • 标点符号

必须注意不要包括系统默认的擦除或终止字符。命令passwd将拒绝任何不合适的密码。

命令支持的选项及含义

-d, –delete
删除用户密码,即将其设为空。这是禁用帐户密码的快捷方法。它会将指定的帐户设置为无密码。

-r, –repository REPOSITORY
修改REPOSITORY库中的密码。

-R, –root CHROOT_DIR
在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。

-k, –keep-tokens
仅针对密码过期的用户执行。用户希望像以前一样保留他们的未过期令牌。

密码时效相关

-i, –inactive INACTIVE
密码过期后,在帐户锁定之前,不活动的最大天数。参数INACTIVE是不活动的天数。如果帐号无法访问或者被锁定,只能联系管理员。

通常,如果密码已过期,则用户在下次登录时必须更改密码。但是还可以设置其他条件,在密码过期后,如果用户在INACTIVE天从未尝试登录,则会自动锁定其帐户。如果INACTIVE为“-1”,则禁用该功能。

-w, –warndays WARN_DAYS
设置在需要更改密码之前的警告天数。在密码过期的前WARN_DAYS天对用户进行警告,用户将收到警告TA的密码即将过期的天数。

-x, –maxdays MAX_DAYS
设置密码保持有效的最大天数。在MAX_DAYS天之后需要更改密码。

-n, –mindays MIN_DAYS
将两次密码更改之间的最小天数设置为MIN_DAYS天。此字段的值为0表示用户可以随时更改其密码,否则用户在修改密码后的MIN_DAYS天内不能再修改密码。

-e, –expire
立即使帐户密码过期。这实际上可以强制用户在下次登录时更改TA的密码。

账户锁定与解锁

-l, –lock
锁定指定帐户的密码。此选项通过将密码更改为不可能存在的加密值来禁用密码(它在原有密码的开头添加“!”)。

请注意,这不会禁用该帐户。用户仍然可以使用另一个认证令牌(例如SSH密钥)登录。要禁用该帐户,管理员应使用usermod –expiredate 1(此设置该帐户的到期日期为1970年1月2日)。

密码锁定的用户不允许更改密码。

-u, –unlock
解锁指定帐户的密码。此选项通过将密码更改回其“先前值”来重新启用密码,”先前值“指的是使用-l选项之前的值。

帐号状态查看

-S, –status
显示帐户状态信息。输出的状态信息由7个字段组成:第1个字段是用户的登录名。第2个字段指示用户帐户是否具有锁定密码(L),没有密码(NP),或者有一个可用的密码(P)。第3个字段给出上次密码更改的日期。接下来的4个字段是密码的最小有效期,最长有效期,警告期,不活动期。这些有效期是以天表示。

-a, –all
该选项只能与-S选项一起使用,显示所有用户的状态信息。

其他选项

-q, –quiet
安静模式。

-h, –help
显示帮助信息并退出。

注意事项

密码复杂性检查可能因站点而异。应该敦促用户设置复杂但又舒服的密码。

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

命令passwd使用PAM对用户进行身份验证并更改其密码。

关于用户密码的一些提示

密码的安全性取决于加密算法的强度和密钥空间的大小。传统的UNIX系统加密方法基于NBS DES算法。推荐现在较新的方法(参见ENCRYPT_METHOD)。密钥空间的大小取决于所选密码的随机性。

密码安全性的损害通常是由于粗心的密码选择或处理造成的。因此,你不应选择出现在字典中,或那些必须写下来的密码。密码也不应该是合理的名称、许可证号码、生日、街道地址,这些中的任何一个都可以用作猜测,危害系统安全性。

有关如何选择强密码的建议可以参考:http://en.wikipedia.org/wiki/Password_strength

相关文件

/etc/passwd
用户账户信息。

/etc/shadow
安全的用户帐号信息。

/etc/pam.d/passwd
用于passwd的PAM配置。

退出状态

命令passwd会以下列值退出:

0 成功。

1 没有权限。

2 选项的组合是无效的。

3 意想不到的失败,什么都不做。

4 意外失败,/etc/passwd文件丢失

5 文件/etc/passwd忙,再试一次

6 选项的参数无效。

相关手册

chpasswd(8), passwd(5), shadow(5), usermod(8).

参考文献

  • man 1 passwd, Version shadow-utils 4.4

更新日志

  • 07/16/2018 创建文章
  • 07/21/2018 更新文章内容,加入「注意事项」部分。