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 日以来经过的秒数表示
有人可以帮我理解这一点。
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 日以来经过的秒数表示
有人可以帮我理解这一点。
man 5 shadow
在 Linux 机器上 说:
上次更改密码的日期为自 1970 年 1 月 1 日以来的天数。密码在经过适当的天数之前不得再次更改,并且必须在最大天数后更改。如果所需的最小天数大于允许的最大天数,则用户不得更改此密码。
因此,您可以在 24 小时内通过将该值乘以/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)报告”,而不是在我的时区。
"epoch" 值 in
/etc/shadow
= 15684
24 小时内的秒数(因为通常 "epoch" 值以秒为单位显示,但出于某种原因(可能是为了制作紧凑视图)在/etc/shadow
文件中 "epoch" 值以天显示,而不是秒) = 24 * 60 * 60 = 86400
通过将这两个数字相乘:15684(天)x 86400(每天秒数);我们将得到号码 1355097600。
之后,或者使用Epoch Converter通过复制/粘贴最终结果,您可以获得日期,
或者
只是date --date @$(( 15684 * 86400 ))
在 cli 中使用命令