Linux命令-last(查看用户登录历史)

🧭说明

last 命令是 Linux 系统中用于查看用户登录历史的重要工具,非常适合用于安全审计和故障排查。下面这个表格汇总了它的核心用法和选项。

功能/类别 命令示例 说明
基本语法 last [选项] [用户名] [终端号] 读取 /var/log/wtmp 文件显示登录历史 。
🔍 常用查询
→ 查看所有记录 last 显示所有成功登录的记录,按时间倒序排列 。
→ 查看指定用户 last username 仅显示指定用户(如 root)的登录记录 。
→ 查看系统重启 last reboot 或 last -x reboot 查看重启记录;-x 选项还会显示运行级别变更等信息 。
→ 查看失败登录 sudo lastb 查看失败的登录尝试,需 root 权限,读取 /var/log/btmp 文件 。
⚙️ 实用选项
→ 限制显示条数 last -n 5 或 last -5 只显示最新的 5 条记录 。
→ 显示完整时间 last -F 显示精确到秒的完整登录和登出时间 。
→ 主机名/IP显示 last -a 将远程主机名或IP地址显示在最后一列,格式更清晰 。
last -R 不显示主机名或IP地址字段,输出更简洁 。
last -d 尝试将 IP 地址解析为主机名 。
→ 指定时间点 last -p "2024-09-28 10:00:00" 显示在指定时间点正处于登录状态的用户 。
→ 指定时间范围 last -s "2024-09-27" -t "2024-09-28" 显示指定时间范围内的登录记录 。
→ 指定日志文件 last -f /path/to/file 读取指定的日志文件(如归档的 /var/log/wtmp.1 ) 。

📖 输出信息解读

last 命令的典型输出如下所示,了解各字段含义能帮助更好地分析信息:

复制代码
用户名     登录终端     远程主机IP/内核版本       登录时间               登出时间               持续时间
root     pts/0        192.168.1.105    Mon Jan 15 09:00   still logged in
root     pts/0        192.168.1.105    Mon Jan 15 08:30 - 17:30  (09:00)
reboot   system boot  5.15.0-91-generic Mon Jan 15 08:25   still running
  • 用户名 :登录用户的名称。如果是系统事件,则显示 reboot(重启)或 shutdown(关机)等 。
  • 登录终端 :
    • pts/*(如 pts/0):通常表示通过 SSH 或 Telnet 建立的远程连接 。
    • tty*(如 tty1):通常表示直接连接到本地的终端控制台 。
  • 登录/登出时间 :still logged in 表示该会话目前仍然活跃,用户尚未登出 。down 表示直到正常关机 。
  • 持续时间 :会话持续的时长,格式为 (时:分) 。

💡 进阶使用与技巧

  1. 组合分析 :可以将 last 与其他命令(如 grep, awk, sort)结合,进行更强大的分析。例如,统计每个用户的登录次数:

    bash 复制代码
    last | grep -v "reboot" | grep -v "wtmp" | awk '{print $1}' | sort | uniq -c | sort -rn
  2. 注意日志轮转 :系统的日志文件(如 /var/log/wtmp)会定期被压缩归档(如 wtmp.1, wtmp.2.gz)。要查看历史记录,可以使用 last -f 指定文件:

    bash 复制代码
    last -f /var/log/wtmp.1
    # 或者查看压缩过的归档
    zcat /var/log/wtmp.2.gz | last -f -
  3. 权限说明:

    • 普通用户可以直接使用 last 命令查看 /var/log/wtmp(成功登录记录)。
    • 查看失败登录记录(lastb 或 last -f /var/log/btmp)通常需要 root 权限 。

⚠️ 重要注意事项

  • 日志文件是基础 :last 命令严重依赖于 /var/log/wtmp 等日志文件。如果这些文件被删除或损坏,命令将无法正常工作 。
  • 时间格式 :命令支持多种时间格式,如 YYYY-MM-DD hh:mm:ss、today、yesterday、-5days(5天前)等,灵活运用于 -s, -t, -p 等选项 。
  • 安全提醒 :last 读取的是系统日志,而日志记录理论上可能被具有足够权限的用户修改或伪造。在进行严格的安全审计时,建议结合其他日志(如 /var/log/auth.log 或 /var/log/secure)进行交叉验证 。
相关推荐
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.4 天前
进程间通信
linux
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
wuyk5554 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog4 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
AIgorithmGEEK4 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid