GNU/Linux,Fedora 17,登录消息

GNU/Linux,Fedora 17,登录消息

是否有一个程序可以显示如下格式的登录消息:

Last login: Wed Oct 24 16:40:33 2012

或者我必须编写自己的程序/脚本?我想知道 Linux 内核(或其他人)是否有命令可以执行此操作。

答案1

内核不跟踪登录信息。您可以配置 PAM ( /etc/pam.d) 来调用pam_lastlog.so模块,它会准确显示您想要的内容:

session optional pam_lastlog.so noterm nohost

或者更详细一点:

session optional pam_lastlog.so

或者也打印失败的登录:

session optional pam_lastlog.so showfailed

在 Fedora 上,它可能会转到/etc/pam.d/system-login/etc/pam.d/gdm-password,我不确定。

信息存储在/var/log/wtmp和中/var/log/lastlog

答案2

我编写了一些代码来完成这个任务:

LINE=`lastlog -u $USER | head -n2 | tail -n1`;
WORDS=`echo "$LINE" | wc -w`;
if [ "x$WORDS" = "x9" ]; then
  echo "$LINE" | awk '{ printf "Last login: %s %s  %s %s %s from %s\n", $4, $5, $6, $7, $9, $3 }';
else
  echo "Unsupported case.";
fi;

它不适用于非远程登录,但我在无头服务器上运行代码,因此 99.9% 的登录将是远程登录;另外 0.1% 将是我在“附加头”以修复ssh问题或类似问题时进行的。

相关内容