从 /etc/shadow 中提取日期

Zor*_*che 5 linux users shadow

该文件/etc/shadow有几个日期字段,表示为自 1970 年 1 月 1 日以来的天数。是否有一种简单的方法可以用来获取用户列表和上次密码更改的日历日期以及到期日期?

参考:人影(5)

Chr*_*son 6

chage -l <username>
Run Code Online (Sandbox Code Playgroud)

示例输出:

Last password change                                    : Dec 17, 2015
Password expires                                        : Mar 16, 2016
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 7
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 14
Run Code Online (Sandbox Code Playgroud)


Zor*_*che 2

有一个答案被删除了,虽然有些错误,但确实引导我走向了正确的方向。

使用 gawk 的strftime结合一些算术给了我我想要的。

cat shadow | gawk -F: '{ print $1 ":" strftime("%Y%m%d",86400*$3) ":" strftime("%Y%m%d",86400*$4)}'

root:20120304:19691231
daemon:20100203:19691231
bin:20100203:19691231
sys:20100203:19691231
Run Code Online (Sandbox Code Playgroud)