从 /etc/shadow 中提取日期

从 /etc/shadow 中提取日期

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

参考:人影(5)

答案1

chage -l <username>

示例输出:

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

答案2

报告指定帐户的密码状态passwd -S username

for user in $(cut -d: -f1 /etc/passwd); do sudo passwd -S $user; done

答案3

for n in $(sudo cat /etc/shadow | awk '{FS=":";print $3}'); do date -d "01/01/1970 +${n}days" +%F; done 

为了避免无用的使用猫奖:

for n in $(sudo awk '{FS=":";print $3}' /etc/shadow); do date -d "01/01/1970 +${n}days" +%F; done 

答案4

这会输出每个用户的密码更新信息:

读取 /etc/passwd 文件 >> 解析每个用户 >> 对每个用户运行 chage -l 命令

for user in $(cut -d: -f1 /etc/passwd); do echo -e "\n $user \n" && chage -l $user; done

相关内容