最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux如何查看系统登录日志_Linux系统登录日志查看指南
时间:2026-06-06 08:01:47 编辑:袖梨 来源:一聚教程网
Linux查看系统登录日志核心是三类文件与三个命令:/var/log/wtmp(last读取,查全部成功登录)、/var/log/lastlog(lastlog读取,查各用户最后一次登录)、/var/log/btmp(lastb读取,查失败登录),配合grep解析/var/log/secure可获更详细失败信息。
Linux 查看系统登录日志,核心就三类文件 + 三个命令,别被各种“指南”绕晕——/var/log/wtmp、/var/log/btmp、/var/log/secure 是真实记录源,last、lastlog、lastb 是对应读取工具,其他命令(如 grep 直接扫 /var/log/secure)只是辅助。
查谁在什么时候成功登录过:用 last 读 /var/log/wtmp
last 默认读取 /var/log/wtmp,这个二进制文件记录所有成功登录/登出、系统启动/关机事件。它不存明文密码或完整命令,但含用户名、终端(tty/pts)、IP(远程时)、时间、持续时长。
- 只看最近 10 条:
last -n 10 - 查某用户(比如
admin)的全部登录历史:last admin - 查某 IP(比如
192.168.1.100)的登录记录:last | grep '192.168.1.100'(注意 IP 可能被截断或显示为 hostname) - 想看更早的记录?
wtmp不自动轮转,但系统可能配置了 logrotate;如果文件被清空或损坏,last就返回空——这时别硬刷,先确认ls -l /var/log/wtmp*是否有归档备份
查谁最后登录过:用 lastlog 读 /var/log/lastlog
lastlog 读的是 /var/log/lastlog,一个按 UID 索引的二进制文件,只存每个用户「最后一次」登录的时间、端口和来源 IP。它轻量、快速,适合批量检查账户活跃度。
- 列出所有用户最后登录时间(含未登录过的):
lastlog(需 root 权限,否则普通用户只能看到自己) - 查单个用户(比如
john):lastlog -u john - 注意:该文件不记录登出或失败尝试;如果输出显示
**Never logged in**,说明该用户从未成功登录过,但不代表账户不存在或没被爆破过 - 该文件没有时间范围参数(如
-t或-b),所谓“lastlog -t 7”是常见误解——那是last的参数,lastlog不支持
查失败登录尝试:用 lastb 读 /var/log/btmp 或直接扫 /var/log/secure
lastb 读 /var/log/btmp(也是二进制),专存失败登录事件,比如密码错、用户不存在、SSH 密钥拒绝。但它默认只保留最近若干次(受文件大小和系统配置限制),且重启后不会自动清空。
- 查看失败记录:
lastb -n 20(-n有效,lastb支持) - 筛选特定用户失败记录:
lastb | grep 'invalid user'或lastb | grep 'root' - 但更常用、更可靠的方式是直接
grep/var/log/secure:grep "Failed password" /var/log/secure | tail -20——因为/var/log/secure是文本格式,带完整时间戳、IP、服务名(sshd/pam)、甚至错误原因,且通常被 logrotate 轮转保留多天 - 清空失败日志?
lastb本身不能清,得清文件:sudo truncate -s 0 /var/log/btmp(慎用!清完就真没了)
为什么 last 和 lastlog 有时查不到近期登录?
不是命令坏了,大概率是底层文件没更新或权限不对:
-
/var/log/wtmp和/var/log/lastlog需要utmp系统调用写入,而某些精简版容器或 systemd-only 系统(无传统 init)可能禁用或未启用 utmp 记录 - 非 root 用户运行
lastlog会提示Permission denied,因为它需要读/var/log/lastlog,而该文件默认权限是600且属主为 root -
last输出为空?先运行ls -l /var/log/wtmp,如果大小为 0,说明记录根本没开启;再检查systemctl status rsyslog是否正常运行——rsyslogd停了,wtmp仍可写,但/var/log/secure就断了
真正难的不是命令怎么敲,而是理解每个文件的生命周期:wtmp 永久累积但不轮转,btmp 极易被填满后丢旧记录,secure 文本全量但依赖 rsyslog 配置。查登录行为前,先确认你要的答案在哪一层——是「最后一次」,还是「全部历史」,还是「失败痕迹」,选错源头,命令再熟也没用。