在 Linux 系统的 ECS 实例中,获取用户登录记录主要依赖系统自带的日志文件和命令工具,这些记录包含了用户登录时间、IP 地址、登录方式(本地 / 远程)、登录状态等关键信息。以下是常用方法分类说明,涵盖基础查询、详细日志分析及安全审计场景,适用于大多数 Linux 发行版(如 CentOS、Ubuntu、Alibaba Cloud Linux 等)。
一、基础命令:快速查询近期登录记录
适合快速查看 “谁登录过”“何时登录” 等核心信息,无需深入日志文件,常用命令如下:
1. last 命令:查看历史登录成功记录
last?命令会读取?/var/log/wtmp?日志文件(记录所有成功登录的会话),默认显示所有用户的登录历史,按时间倒序排列(最新的在最前面)。
常用参数与示例:
命令作用
last显示所有用户的完整登录历史(包含登录时间、IP、退出时间、会话持续时长)
last root仅显示?root?用户的登录记录(替换?root?为指定用户名可查特定用户)
last -n 10显示最近 10 条登录记录(-n?后接数字指定条数)
last -i强制显示登录来源的?IP 地址(默认可能显示主机名,-i?避免反向解析)
last -x显示更详细信息(包含系统启动、关机、运行级别切换等记录)
last -f /var/log/wtmp.1查看历史归档日志(wtmp?会按周期归档为?wtmp.1?wtmp.2?等,需指定路径)
示例输出解读:
bash?????
root pts/0 192.168.1.100 Wed Oct 11 09:30:45 2024 – Wed Oct 11 11:45:12 2024 (02:14)
# 用户名 终端(pts/0=远程SSH,tty1=本地终端) 登录IP 登录时间 退出时间 会话时长
root pts/1 203.0.113.5 Tue Oct 10 18:15:22 2024 – Tue Oct 10 18:30:05 2024 (00:14)
reboot system boot 5.14.0-aliyuncs.x Tue Oct 10 18:10:00 2024 – Wed Oct 11 12:00:33 2024 (17:50)
# reboot 表示系统启动记录,无用户名
BashCopy
2. lastb 命令:查看登录失败记录
lastb?命令读取?/var/log/btmp?日志文件(专门记录登录失败的尝试,如密码错误、用户名不存在等),常用于排查暴力破解或异常登录尝试。
常用参数与示例:
命令作用
lastb显示所有登录失败记录(默认按时间倒序)
lastb -n 20显示最近 20 条失败记录
lastb -i显示失败登录的来源 IP(避免主机名解析)
lastb root查看针对?root?用户的登录失败记录(常用于检测是否有人暴力破解 root 密码)