修改用户密码
命令语法格式
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 更新文章内容,加入「注意事项」部分。