1. 概述
通常使用passwd来更改用户密码,但是这个方法只能一个一个更改,不适合批量生产的场合。本文介绍了从根文件 系统更改密码的方法。
2. 更改方法
在/etc/shadow文件下修改密码,密码被加密过。如下
上图中,第一行便是root的密码,被加密过,且使用:来分开。各字段如下
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段 |
用户名
同 /etc/passwd 文件的用户名有相同的含义。
加密密码
这里保存是真正加密的密码。这个密码,是单向不可逆的。目前 Linux 的密码采用的是 SHA512 散列加密算法,SHA512 散列加密算法的加密等级更高,也更加安全。
要更换这个密码,可以用加密工具来生成密文,然后替换,也可以使用passwd设置新的密码,然后打开/etc/shadow文件复制改字段到需要更改的/etc/shadow有可以。
最后一次修改时间
表示最后一次修改密码的时间,数字的含义是从 1970 年 1 月 1 日到现在的天数,1970 年 1 月 1 日作为 1,过一天加 1。
最小修改时间间隔
表示从变更密码的日期算起,多少天内无法再次修改密码,如果是 0 的话,则没有限制。
密码有效期
该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。可以通过这个字段强制用户定期修改密码。
密码需要变更前的警告天数
密码快过期了,系统就会给出警告了,提醒用户 “再过 n 天你的密码就要过期了,请尽快重新设置你的密码!”。该字段的默认值是 7。
密码过期后的宽限天数
在密码过期后,不是立即失效,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。
假设这个字段设置为 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
账号失效时间
过了这个日期账号就无法使用。使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段通常被使用在具有收费服务的系统中。
保留
这个字段目前未使用