如何查看登录历史记录?

有没有办法查看登录历史记录,我是说能不能看到有人在我不在的时候使用过电脑,以及他们使用电脑的时间。
如果可以的话,我应该去哪里获取这些日志?
如果不行的话,是否有一个可以记录所有登录和时间的程序?

44在终端中尝试使用last命令。 - suhailvs
1如果你想将其保存在一个文件中(比如userlogin.log),请使用last > userlogin.log - suhailvs
根据@suhailvs的建议,如果信息太多,你可以添加last | less。你可以使用相同的vim命令来搜索某些内容。 - Pathros
5个回答

/var/log/auth.log

那里面包含的不仅仅是普通的登录信息(sudo调用等),还有登录信息。它受到保护,所以你需要以root身份才能阅读它。
sudo less /var/log/auth.log

5打印登录失败历史记录的确切命令:sudo grep 'authentication failure' /var/log/auth.log | grep -v "sudo"。示例输出行:Feb 19 14:35:02 comp-name-1 compiz: pam_unix(unity:auth): authentication failure; logname= uid=1001 euid=1001 tty= ruser= rhost= user=ld。打印成功登录历史记录的命令:sudo grep 'login keyring' /var/log/auth.log | grep -v "sudo"。示例输出行:Feb 18 07:17:58 comp-name-1 compiz: gkr-pam: unlocked login keyring。可能只显示最后一次重启后的登录记录。排除sudo是因为否则我们自己的命令也会被列出来。 - luke
1sudo grep login.*session.*opened.*USERNAME /var/log/auth.log | grep -v sudo | less -N - Muhamed Huseinbašić
即使它工作正常,它也不会报告年份,只会显示用户、日期和时间等其他信息。 - Manuel Jordan

正如Suhail在一条评论中提到的那样,comment中的last命令将显示最后登录用户的列表。

要查看系统上所有帐户的最新登录情况,请尝试使用lastlog命令。有一些有用的选项,例如只查看特定用户的登录记录。

4这告诉我没有人曾经登录过(显然是错误的,因为我已经登录来运行它)。 - JoshB
1我的lastlog输出也是错误的 - 我的两个用户都有条目(都是错误的),而且其中一个显示为“从未登录”。 - pbhj
FYI:在Ubuntu18上看起来还不错。 - DimiDak

如果你在使用笔记本电脑,可以通过grep命令来检查确切的内容,这样就能补充你的问题和Oli的回答。
sudo cat /var/log/auth.log | grep "Lid opened"

或者
sudo cat /var/log/auth.log | grep "Lid closed"

是否他/她通过sudo权限执行任何类型的操作
sudo cat /var/log/auth.log | grep "session opened for user root"

或者
sudo cat /var/log/auth.log | grep "session closed for user root"

它将为您提供关于用户在您的系统中登录的额外信息,而无需您的许可:):)

5我也使用 sudo grep 'login keyring' /var/log/auth.org 来检查登录历史记录。 - Tao Wang
小心“盖子关闭”:这只在用户关闭盖子以挂起笔记本电脑时有效。如果用户使用挂起按钮,显然不会记录任何内容。还需要注意的是,如果用户先挂起计算机,然后关闭盖子,那么在稍后重新打开盖子时,两个事件(盖子关闭+盖子打开)将使用相同的时间戳进行记录。 - Johannes Lemonde
@TaoWang:完美无瑕 :) - Johannes Lemonde

要查看系统和用户的最后一次启动或登录,您可以使用带有多种选项的命令who
who -a