使用Awk,shadow和password进行Linux密码过期

时间:2015-03-19 14:27:15

标签: linux awk shadow passwd

我正在尝试编写一个输出用户名,真实姓名和帐号到期日期的脚本。 这是我到目前为止的代码。

awk -F: '$3 > 1000 { print $1, $5 }|grep /etc/shadow (print $9)to_date('1970-01-01','YYYY-MM-DD') + numtodsinterval(1244108886,'SECOND')

输入:

smithj:Ep6mckrOLChF.:10063:0:99999:7:::
westf:Ep7uopliokmmm.:1058:0:1087654:7:::
martinezj:GHolimpjk90.:1010:0:1008759:7::

输出:

John Smith           Password expires never
Frank West           Password expires: May 8th 2015
Jose Martinez        Password expires: August 12th 2015

1 个答案:

答案 0 :(得分:0)

假设您有权查看影子文件,这将输出用户名,真实姓名和帐号到期日期,冒号分隔:

join -t: -o 0,1.5,2.8 <(sort /etc/passwd) <(sort /etc/shadow)

将有效期限作为自纪元以来的天数吐出。这可能会更好:

user=someone
IFS=: read username name < <(getent passwd "$user" | cut -d: -f1,5)
expiry=$(chage -l "$user" | awk -F': ' '/^Account expires/ {print $2}')
printf "%s\n" "$username" "$name" "$expiry"