my_current_epoch=15684 equivalent time stamp is Thu, 01 Jan 1970 04:21:24
last_password_reset_epoch_time=15547 equivalent time stamp is Thu, 01 Jan 1970 04:19:07
我无法理解这两者之间的差异将给上次密码重设后的日期。
根据我的理解,纪元时间用自1970年1月1日起的秒数表示
有人可以帮我理解这个。
答案 0 :(得分:2)
man 5 shadow
说:
上次更改密码的日期是自1970年1月1日以来的天数。密码可能不是 再次更改,直到经过适当的天数,并且必须在最大数量后更改 天。如果所需的最小天数大于允许的最大天数,则为此 用户不得更改密码。
因此,您可以通过将/etc/shadow
的值乘以86400(一天中的秒数 - 但您不需要我告诉您,是吗?)。
对于给定的值(bc
救援):
15684*86400 = 1355097600
15547*86400 = 1343260800
和
$ timestamp -u 1355097600 1343260800
1355097600 = Mon Dec 10 00:00:00 2012
1343260800 = Thu Jul 26 00:00:00 2012
$
时间戳是我的计划;现代版本的date
也可以处理这个问题。 -u
表示“UTC(也称为GMT)报告”而不是我的时区。
答案 1 :(得分:1)
/etc/shadow
中的“ epoch”值= 15684
24小时内的秒数(通常是因为“ epoch”值以秒为单位显示,但出于某种原因(也许是为了使视图简洁),/etc/shadow
文件中的“ epoch”值以天数显示,而不是以 seconds )= 24 * 60 * 60 = 86400
然后将这两个数字相乘:15684(天)x 86400(每天的秒数);我们将得到号码1355097600。
然后,使用Epoch Converter复制/粘贴最终结果,即可获取日期
或
只需在cli中使用date --date @$(( 15684 * 86400 ))
命令