0

I am trying to write a script that ouputs the username,real name, and account expriation date. This is the code I have so far.

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

input:

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

output:

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

1 回答 1

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"
于 2015-03-19T15:55:12.397 回答