在Linux系统中,监控和管理用户登录活动是系统管理员的重要职责之一,通过分析最近登录信息,可以及时发现异常登录行为、排查系统故障,并确保系统安全,本文将详细介绍Linux系统中与“最近登录”相关的命令、日志文件及其分析方法,帮助读者全面掌握这一实用技能。

常用查看最近登录的命令
Linux系统提供了多种命令来查看用户的最近登录记录,这些命令各有特点,适用于不同的场景。
last命令
last命令是查看最近登录用户信息的常用工具,它从/var/log/wtmp文件中读取数据,显示用户的登录、注销时间以及终端信息,执行last命令会输出类似以下内容:
root pts/0 192.168.1.100 Tue Dec 5 10:30 still logged in
user1 pts/1 192.168.1.101 Tue Dec 5 09:15 - 10:20 (01:05)
user2 tty1 - Mon Dec 4 16:45 gone - no logout
输出字段包括用户名、终端、来源IP、登录时间和持续时间,若需限制输出行数,可使用-n参数,如last -n 10只显示最近10条记录。
lastb命令
与last不同,lastb命令用于查看失败的登录尝试,其数据来源为/var/log/btmp文件,这对于检测暴力破解等恶意行为至关重要。
failed ssh:notty 192.168.1.200 Tue Dec 5 11:00 - 11:00 (00:00)
failed login 192.168.1.201 Tue Dec 5 10:55 - 10:55 (00:00)
默认情况下,普通用户无法查看lastb的输出,需要root权限。
lastlog命令
lastlog命令显示所有用户最近一次的登录信息,数据来自/var/log/lastlog文件。
Username Port From Latest
root pts/0 192.168.1.100 Tue Dec 5 10:30:00 +0800 2023
user1 pts/1 192.168.1.101 Tue Dec 5 09:15:00 +0800 2023
user2 tty1 - Mon Dec 4 16:45:00 +0800 2023
该命令适合快速定位特定用户的最近登录情况,使用lastlog -u username可查询指定用户。
登录日志文件详解
除了上述命令,Linux系统的登录活动还会记录在多个日志文件中,了解这些文件的结构和位置有助于深入分析登录行为。
/var/log/wtmp
wtmp文件是二进制文件,记录所有成功的登录和注销事件。last命令通过解析此文件生成报告,由于文件是二进制格式,无法直接用cat查看,需借助last或ac等工具。
/var/log/btmp
btmp文件同样为二进制格式,记录所有失败的登录尝试。lastb命令是查看此文件的主要工具,定期检查此文件可及时发现异常IP地址的暴力破解行为。

/var/log/lastlog
lastlog文件存储每个用户最近一次的登录信息,包括登录时间和终端,每个用户对应一条记录,适合用于审计用户的活动历史。
/var/log/auth.log 或 /var/log/secure
这两个文件记录了系统的认证日志,包括SSH登录、sudo使用、密码修改等事件,以Ubuntu系统为例,/var/log/auth.log会包含类似以下内容:
Dec 5 10:30:01 server sshd[1234]: Accepted publickey for user1 from 192.168.1.101 port 22 ssh2
Dec 5 10:30:02 server sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/ls -la
通过分析此文件,可以追踪用户的详细操作轨迹。
登录信息的分析方法
掌握查看方法后,如何有效分析登录信息是关键,以下是一些实用的分析技巧和场景。
检测异常登录行为
-
来源IP分析:使用
last命令后,通过管道结合grep和awk提取IP地址,统计高频登录IP。last | grep -v "still logged in" | awk '{print $3}' | sort | uniq -c | sort -nr此命令可显示登录次数最多的IP地址,帮助识别可疑来源。
-
登录时间模式:异常登录通常发生在非工作时间,可通过
last命令的输出时间字段,结合脚本分析登录时间分布。
用户活动审计
对于多用户系统,定期审计用户登录情况是必要的,检查某用户最近7天的登录记录:
last -u username | grep -E "^[[:space:]]*[A-Za-z]" | head -n 20
结合/var/log/auth.log查看该用户的sudo操作和文件访问记录。
日志轮转与维护
Linux系统通常会配置日志轮转(logrotate),防止日志文件过大。/etc/logrotate.conf中可能包含以下配置:

/var/log/wtmp {
monthly
create 0644 root utmp
rotate 1
}
/var/log/btmp {
weekly
create 0640 root utmp
rotate 4
missingok
}
管理员需确保日志轮转配置正确,并定期备份重要日志文件。
安全加固建议
基于登录信息的分析结果,可采取以下措施加固系统安全:
-
限制SSH登录:修改
/etc/ssh/sshd_config,禁用root远程登录,使用密钥认证而非密码:PermitRootLogin no PasswordAuthentication no -
设置失败登录阈值:使用
fail2ban工具,对多次失败登录的IP进行封禁。 -
定期审查用户权限:通过
lastlog和/etc/passwd文件,清理长期未使用的账户。 -
启用日志监控:使用
logwatch或elk(Elasticsearch、Logstash、Kibana)工具,实时监控日志异常。
Linux系统的“最近登录”信息是系统管理和安全审计的重要数据来源,通过熟练使用last、lastb、lastlog等命令,并结合日志文件的深入分析,管理员可以及时发现潜在风险并采取应对措施,合理配置日志轮转和安全策略,能够有效提升系统的安全性和可维护性,在日常运维中,将登录信息监控作为常规工作,是保障Linux系统稳定运行的关键环节。













