我正在尝试编写一个脚本来输出用户名、真实姓名和帐户到期日期。 这是我到目前为止的代码。
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
最佳答案
假设您有权查看影子文件,这将输出用户名、真实姓名和帐户到期日期,以冒号分隔:
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"
关于Linux 密码过期与 Awk、shadow 和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147193/