linux – 按天数重置密码到期日期,而不是指定日期

weixin_38088241 2019-09-12 12:46:59
是否有一种方法可以使用命令passwd或chage来强制密码在命令执行后90天到期? 我知道我可以按日期来做,例如: chage -E "2014-07-31" userid 但我正在寻找一种方法,通过数字而不是特定的日期来做到这一点. 谢谢!
...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38096967 2019-09-12
  • 打赏
  • 举报
回复
chage本身不处理日期差异,但你可以让shell处理这个问题,并在1970-01-01之后的几天内给出chage而不是YYYY-MM-DD日期表示: chage -E $(( $(date +%s)/3600/24 + 90 )) userid (在任意天数内替换90.) 更改密码的过期日期而不是帐户有点棘手 – 实际上,您无法设置密码的实际到期日期,只能设置最大年龄(使用chage -M). 要计算密码从现在起90天后到期所需的最长年龄,我们需要跳过几个环节: userid=johndoe pwd_age=$(grep "^$userid:" /etc/shadow | cut -d: -f 3) now=$(( $(date +%s) / 3600 / 24 )) age_at_expiry_date=$(( $now + 90 - $pwd_age )) chage $userid -M $age_at_expiry_date 如果你不介意它是相当复杂的,你甚至可以把它组合成一个单行: userid=johndoe chage $userid -M $(( $(date +%s) / 3600 / 24 + 90 - $(grep "^$userid:" /etc/shadow | cut -d: -f 3) )) 如果您不介意覆盖上次更改密码的日期,您可以这样做 chage -M 90 -d $(date +%F) userid

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧