CentOS的last命令怎么用,如何查看登录重启记录?

在Linux系统管理领域,安全审计与追踪用户活动是至关重要的日常任务,CentOS作为广泛使用的服务器操作系统,提供了一系列强大的工具来帮助管理员实现这一目标。last命令是一个基础但极其有用的工具,它专门用于显示用户近期的登录历史记录,通过深入理解和运用last命令,管理员可以快速回顾系统的访问情况,发现潜在的安全风险,或排查与用户会话相关的问题。

CentOS的last命令怎么用,如何查看登录重启记录?

last命令的核心功能是读取并解析系统中的/var/log/wtmp文件,这个二进制日志文件记录了系统中每一次成功的登录、登出以及系统重启事件,每当用户成功登录时,一条新的记录会被写入wtmp文件;当用户登出时,对应的记录会被更新。last命令展示的正是这个文件所维护的动态历史。

基本用法与输出解析

在没有任何参数的情况下,直接在终端输入last命令,系统会列出从wtmp文件创建以来所有的登录记录,通常按照时间倒序排列(最新的记录在最前面),其输出格式非常直观,每一行代表一个登录会话,并包含多个信息列。

一个典型的last命令输出如下所示:

testuser pts/0        192.168.1.101    Mon May 20 09:15   still logged in
root     pts/1        192.168.1.102    Sun May 19 22:30 - 23:45  (01:15)
reboot   system boot  5.4.17-2136.311  Sun May 19 22:28   still running
admin    tty1                         Sun May 19 10:00 - 14:30  (04:30)

为了更好地理解这些信息,我们可以将其分解为以下几个关键列:

列名 描述
用户名 登录系统的账户名称,如roottestuser,特殊值reboot表示系统启动事件。
终端 用户登录所使用的终端设备。pts/0pts/1等代表SSH或图形界面的伪终端;tty1代表物理控制台。
来源主机 用户登录来源的IP地址或主机名,如果显示为0.0.0或留空,通常表示从本地控制台登录。
登录时间 用户会话开始的日期和时间。
登出时间 用户会话结束的日期和时间,如果用户仍在登录状态,会显示still logged in,如果是系统崩溃或网络中断导致会话异常结束,可能会显示down
持续时长 本次登录会话的总时长,以(HH:MM)格式表示。

常用选项详解

last命令的真正威力在于其丰富的选项,这些选项允许管理员对输出进行精确的过滤和格式化,以满足不同的审计需求。

-n--limit:限制输出行数

当系统登录记录非常多时,使用-n选项可以只显示最近的N条记录,这对于快速获取最新动态非常有用。

last -n 20

这个命令将只显示最近的20条登录记录,让终端输出更加简洁。

-u--user:筛选特定用户

如果需要调查某个特定账户的活动情况,可以使用-u选项后跟用户名。

CentOS的last命令怎么用,如何查看登录重启记录?

last -u testuser

该命令会只显示testuser这个账户的所有登录历史,排除了其他用户的干扰,便于集中分析。

-t--until-s--since:按时间范围筛选

这是进行安全事件追溯时最常用的选项组合。-s指定开始时间,-t指定结束时间,从而可以精确地查询某个特定时间窗口内的登录活动,时间格式通常为YYYYMMDDHHMMSS

# 查询2025年5月20日全天到5月21日早上的登录记录
last -s 20250520000000 -t 20250521080000

通过这种方式,管理员可以快速定位到某个可疑事件发生时间段内的所有系统访问记录。

-F--fulltimes:显示完整时间戳

默认情况下,last可能会省略年份或显示简化的时间,使用-F选项可以显示完整的、包含年月日时分秒的详细时间戳,这在需要精确时间点的审计场景中至关重要。

last -F -n 5

-d--dns:将IP地址解析为主机名

为了更直观地了解登录来源,-d选项会尝试将IP地址反向解析为主机名,这可能会增加命令的执行时间,因为需要进行DNS查询。

last -d -n 10

-i--ip:强制显示IP地址

-d相反,-i选项会将所有主机名都转换为数字IP地址显示,这对于快速识别网络段或进行IP层面的分析很有帮助。

last -i -u root

-x--system:显示系统关机和重启事件

默认情况下,last会显示reboot记录,但使用-x选项可以显示更详细的系统状态变化,包括运行级别的切换(runlevel)和关机事件(shutdown)。

last -x

这对于排查因系统重启或意外关机导致的服务中断问题非常有用。

CentOS的last命令怎么用,如何查看登录重启记录?

工作原理:日志文件探秘

理解last命令背后的工作机制,能让我们更有效地使用它,它主要依赖两个日志文件:

  1. /var/log/wtmp:记录所有成功的登录、登出和系统重启事件。last命令默认读取此文件。
  2. /var/log/btmp:记录所有失败的登录尝试,这个文件对于发现暴力破解攻击等恶意行为至关重要。

要查看失败的登录尝试,需要使用lastb命令,它的用法和选项与last几乎完全相同,只是读取的数据源是btmp文件。

# 查看最近的10次失败登录尝试
lastb -n 10

定期检查lastb的输出是系统安全维护的一个良好习惯。

相关问答 (FAQs)


解答: 这种情况通常是由日志轮转机制引起的,为了防止日志文件无限增长,CentOS系统会通过logrotate工具定期对/var/log/wtmp进行切割、压缩和清理,旧的wtmp文件可能会被重命名为wtmp.1wtmp.2.gz等,并最终被删除。last命令默认只读取当前活跃的/var/log/wtmp文件,如果你想查看已被轮转的旧日志,可以手动指定文件路径,last -f /var/log/wtmp.1,你可以检查/etc/logrotate.conf/etc/logrotate.d/wtmp配置文件来了解日志轮转的具体策略。


解答: 是的,last命令能够记录通过SSH密钥的登录。last命令关注的是“登录会话”的建立与结束,而不是用户进行身份验证的具体方式,无论用户是通过密码、SSH密钥、还是其他认证方法(如Kerberos)成功登录系统,wtmp文件都会记录下这次登录事件,在last的输出中,你无法直接区分一次登录是通过密码还是密钥完成的,但该登录行为本身会被完整地记录下来,包括用户名、来源IP和登录时间。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-05 14:04
下一篇 2025-10-05 14:08

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信