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

🧭说明

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

功能/类别 命令示例 说明
基本语法 last [选项] [用户名] [终端号] 读取 /var/log/wtmp 文件显示登录历史 。
🔍 常用查询
→ 查看所有记录 last 显示所有成功登录的记录,按时间倒序排列 。
→ 查看指定用户 last username 仅显示指定用户(如 root)的登录记录 。
→ 查看系统重启 last rebootlast -x reboot 查看重启记录;-x 选项还会显示运行级别变更等信息 。
→ 查看失败登录 sudo lastb 查看失败的登录尝试,需 root 权限,读取 /var/log/btmp 文件 。
⚙️ 实用选项
→ 限制显示条数 last -n 5last -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(成功登录记录)。
    • 查看失败登录记录(lastblast -f /var/log/btmp)通常需要 root 权限 。

⚠️ 重要注意事项

  • 日志文件是基础last 命令严重依赖于 /var/log/wtmp 等日志文件。如果这些文件被删除或损坏,命令将无法正常工作 。
  • 时间格式 :命令支持多种时间格式,如 YYYY-MM-DD hh:mm:sstodayyesterday-5days(5天前)等,灵活运用于 -s, -t, -p 等选项 。
  • 安全提醒last 读取的是系统日志,而日志记录理论上可能被具有足够权限的用户修改或伪造。在进行严格的安全审计时,建议结合其他日志(如 /var/log/auth.log/var/log/secure)进行交叉验证 。
相关推荐
咕噜企业分发小米4 小时前
腾讯云与火山引擎多云管理工具如何实现应用部署合规?
网络·腾讯云·火山引擎
断水客4 小时前
搭建ARM LINUX 内核 QEMU 仿真调试环境
linux·运维·arm开发·嵌入式
fantasy5_54 小时前
深入理解 Linux 动静态库:制作、原理与加载机制
linux·运维·restful
2301_780789664 小时前
2025年UDP洪水攻击防护实战全解析:从T级流量清洗到AI智能防御
服务器·网络·人工智能·网络协议·安全·web安全·udp
不爱吃糖的程序媛4 小时前
OpenHarmony仓颉文档:全场景应用开发指南
运维·服务器
龙仔7254 小时前
n2n supernode Linux完整部署笔记,包含离线部署,
linux·运维·笔记·n2n·supernode
c++逐梦人4 小时前
进程控制(2)进程程序替换
linux·操作系统·进程
深耕AI4 小时前
【wordpress系列教程】07 网站迁移与备份
运维·服务器·前端·数据库
咕噜企业分发小米5 小时前
腾讯云多云管理工具如何与第三方合规工具集成以支持持续合规?
运维·服务器·游戏