该文件/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