HEA*_*0NE 2 linux password passwd
有没有办法使用命令 passwd 或 chage 强制密码在命令执行后 90 天到期?
我知道我可以按日期完成,例如:
chage -E "2014-07-31" userid
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种使用数字而不是特定日期的方法。
谢谢!
chage
本身不处理日期差异,但您可以让 shell 处理它并给出自chage
1970-01-01 以来的天数,而不是 YYYY-MM-DD 日期表示:
chage -E $(( $(date +%s)/3600/24 + 90 )) userid
Run Code Online (Sandbox Code Playgroud)
(用任意天数替换 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
Run Code Online (Sandbox Code Playgroud)
如果你不介意它相当复杂,你甚至可以将它组合成一个单行:
userid=johndoe chage $userid -M $(( $(date +%s) / 3600 / 24 + 90 - $(grep "^$userid:" /etc/shadow | cut -d: -f 3) ))
Run Code Online (Sandbox Code Playgroud)
如果您不介意覆盖上次更改密码的日期,您可以
chage -M 90 -d $(date +%F) userid
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20034 次 |
最近记录: |