我正在尝试编写一个输出用户名,真实姓名和帐号到期日期的脚本。 这是我到目前为止的代码。
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
答案 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"