在我的系统上,shadow 的手册页以这种方式定义第三列值:
上次更改密码的日期,表示为自 1970 年 1 月 1 日以来的天数。
我有一个示例值“17050”。passwd -S
说这是“2016-09-06”。但自 1970 年以来的秒数是“1473112800.0”。当我计算 1473112800.0/(60*60*24) 时,我得到“17049.9166666666”。
“17050”是如何计算的?它是四舍五入还是总是下一个更大的整数?
答案1
自纪元以来已经过去了几天,而不是几秒。
$ date -I -d '1970-01-01 + 17050 days'
2016-09-06
(顺便说一句,从技术上讲,你不能用秒来表示“从现在起 365 天”;由于闰秒的原因,天在 6 个月之后没有固定的长度,甚至没有可知的长度。)