last命令查看正常登录记录,读取/var/log/wtmp文件;lastb命令查看失败登录尝试,读取/var/log/btmp文件,二者用于监控用户登录行为和排查安全问题。

linux 中的 last 和 lastb 命令用于查看系统的登录记录,帮助系统管理员追踪用户登录行为和排查安全问题。这两个命令读取不同的日志文件,提供互补的信息。
last 命令:查看正常登录记录
last 命令用于显示用户最近的登录和登出记录,数据来源于 /var/log/wtmp 文件。
基本用法:
- last:显示所有用户的登录历史,包括用户名、终端、IP 地址、登录时间、登出时间和会话时长。
- last username:仅显示指定用户的登录记录,例如 last root 可查看 root 用户的登录情况。
- last -n 10 或 last | head -10:限制输出前 10 条记录。
- last reboot:查看系统重启的历史时间点。
- last shutdown:查看系统关机记录(如果系统正确记录了关机事件)。
输出字段说明:
- 用户名:登录的账户名,如 root、user1。
- 终端:登录所使用的终端或伪终端,如 pts/0、tty1。
- 来源 IP 或主机名:远程登录的来源地址,本地登录显示为 :0 或 localhost。
- 登录时间:会话开始的时间。
- 登出时间:会话结束时间,若仍在登录中则显示 “still logged in”。
- 持续时间:本次会话的时长。
lastb 命令:查看失败登录尝试
lastb 命令用于显示失败的登录尝试,数据来源于 /var/log/btmp 文件,常用于发现暴力破解或异常登录行为。
基本用法:
- lastb:列出所有失败的登录记录,包括用户名、终端、来源和时间。
- lastb username:查看特定用户登录失败的情况,例如 lastb root 可检查针对 root 账户的爆破尝试。
- lastb -n 10:只显示最近 10 条失败记录。
注意:/var/log/btmp 文件默认存在但可能为空,只有发生登录失败时才会被写入。该文件不自动轮转,长期运行可能导致体积过大,建议定期清理或配置日志轮转。
实用技巧与注意事项
- 两个命令都支持翻页查看,输出过多时会自动进入分页模式(类似 more 或 less)。
- 若想清空 btmp 记录,可使用 sudo > /var/log/btmp(谨慎操作)。
- wtmp 和 btmp 都是二进制文件,不能用 cat 直接阅读,必须通过 last 和 lastb 解析。
- 远程登录(如 ssh)失败记录会被 lastb 捕获,结合 fail2ban 等工具可实现自动封禁。
- 确保日志文件权限正确,避免未授权访问,/var/log/btmp 通常只有 root 可读。
基本上就这些。掌握 last 和 lastb 的使用,能有效监控系统登录状态,及时发现可疑活动。


