密码为什么会过期?
我已经使用公钥(无需密码)登录好几天了。今天我收到以下消息:
> ssh modlink_foo_q@server
You are required to change your password immediately (password expired)
Last login: Wed Nov 14 09:26:48 2018 from 10.130.4.3
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for modlink_foo_q.
这是 /etc/shadow 中的匹配行
server:~ # grep modli /etc/shadow
modlink_foo_q:!:17757:1:90:7:::
我认为没有设置密码。那么谁会让它过期呢?
操作系统:SUSE Linux Enterprise Server 12 SP3
答案1
您的加密密码的值(或缺少密码)不会改变已设置密码过期策略的事实。
看https://linux.die.net/man/3/shadow和https://linux.die.net/man/5/shadow
当前密码是在 2018 年 8 月 14 日星期二设置的
(第三个字段是sp_lstchg
- 自 1970 年 1 月 1 日上次更改密码以来的天数:date --date '1970-01-01 +17757days'
)
(很可能是创建帐户时)并且有效期为 90 天。
(字段#5 sp_max
- 必须更改密码的天数)即密码有效期至date --date '1970-01-01 +17757days +90days'
2018 年 11 月 12 日星期一。
您目前处于密码到期后的 7 天宽限期,除非您更改密码,或更改/更新策略字段(使用chage
)该帐户将于 2018 年 11 月 19 日(星期一)被视为不活跃并被禁用。
chage --lastday 2018-11-14 modlink_foo_q
将使用今天的日期更新该sp_lstchg
字段,这将允许您在模拟新的密码重置之前继续使用该帐户 90 分钟。
答案2
我已更新/etc/login.defs
以包含此内容:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
现在一切正常。密码不再过期。