我试图找出用户上次登录而不使用“last”的时间。最后依赖于回收的日志文件,几周后,用户的旧条目将被删除。
我确信某个地方有一个每个用户的条目仍然保留着信息。当我登录某些计算机进行维护时,它总是显示我上次登录的时间,即使是一年多前。
登录例程在哪里找到此信息?
顺便说一句,我的主要 Linux 操作系统是 Ubuntu 16.04 LTS。据我了解,从 18.04 开始,Ubuntu 将会发生重大变化。
我问在https://unix.stackexchange.com代替http://askubuntu.com因为我想确保有一个可行的解决方案,即使这个功能在下一个版本中发生变化。另外,最近在研究Raspberry PI。
问题是关于基于 Linux 的系统。
例子:
我今天(2018 年 3 月 8 日)刚刚登录到我的一台服务器。这是登录例程显示的内容:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-1037-aws x86_64)
78 packages can be updated.
0 updates are security updates.
*** System restart required ***
Last login: Fri Nov 3 02:46:58 2017 from 72.43.238.238
日志last
文件只能追溯到二月份:
$ ls -l /var/log/wtmp*
-rw-rw-r-- 1 root utmp 384 Mar 8 04:36 /var/log/wtmp
-rw-rw-r-- 1 root utmp 0 Feb 1 06:25 /var/log/wtmp.1
一些预期的任务包括从我的一些服务器中删除不活动的活动用户。
答案1
访问此信息的命令是:lastlog
lastlog - reports the most recent login of all users or of a given user
这使用了先前用户登录时间的数据库。数据库存储在/var/log/lastlog
.
例子:
$ lastlog -u apollo
Username Port From Latest
apollo pts/43 127.0.0.1 Sun Feb 25 04:00:47 -0500 2018
笔记:
从命令输出listlog
以及手册页的测试来看,它/var/log/laslog database
似乎是永久性的(具有所有时间的条目)。您可以lastlog
从/etc/passwd
文件中的任何人访问该条目。应用lastlog
程序会报告该帐户的最后登录时间,**Never logged in**
如果该帐户从未登录过,则报告该帐户。
这个示例条目可以追溯到 6 年前:
lorenzo pts/6 ubunzeus Fri Apr 20 21:23:18 -0400 2012