浅谈Linux的last命令

1.命令简介

last 是 Linux 系统中用于查看用户登录历史记录的核心命令。它通过读取 /var/log/wtmp 这个二进制日志文件,向管理员展示谁在何时、从何处登录了系统,以及登录会话持续了多久。

数据来源与原理

  • 数据源:/var/log/wtmp。这是一个二进制文件,不能用 cat 或 vim 直接查看,必须用 last 解析。
  • 记录内容:每次用户登录(登录/退出)、系统重启(reboot)以及运行级别变更(runlevel)时,系统都会向该文件追加一条记录。
  • 轮转机制:为防止文件无限增大,系统会进行日志轮转。通常你会看到 wtmp.1、wtmp.2.gz 等历史压缩包。last 默认只读取当前的 wtmp,但可以通过 -f 参数指定读取历史文件。

2.语法

bash 复制代码
last [options] [username...] [tty...]

参数说明

options:

  • -R 省略主机名 hostname 的列
  • -a  把从何处登入系统的主机名称或IP地址显示在最后一行。
  • -d  将IP地址转换成主机名称。
  • -f<记录文件>  指定记录文件。
  • -n<显示行数>或-<显示行数>  显示名单的行数。
  • -R  不显示登入系统的主机名称或IP地址。
  • -x  显示系统关机,重新开机,以及执行等级的改变等信息。

username:

  • username: 显示指定用户 username 的登录信息。

tty:

  • tty 设置登录的终端,tty 的名称可以缩写, last 0 与 last tty0 相同。

3.实例

显示两行,并省略主机名 hostname 的列:

bash 复制代码
# last -R -2
root     pts/0        Thu Apr 28 18:06   still logged in
root     pts/0        Tue Apr 26 09:06 - 19:36  (10:30)

wtmp begins Sun Apr  3 13:11:25 2022

显示两行,并省略主机列:

bash 复制代码
~# last -R -2
root     pts/0        Thu Apr 28 18:06   still logged in
root     pts/0        Tue Apr 26 09:06 - 19:36  (10:30)

wtmp begins Sun Apr  3 13:11:25 2022

一般显示方法:

bash 复制代码
# last
...
root   pts/4    Thu May 13 17:25  still logged in  
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)  
root   pts/1    Thu May 13 16:46  still logged in  
...

简略显示,并指定显示的个数:

bash 复制代码
# last -n 5 -R
root   pts/4    Thu May 13 17:25  still logged in  
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)  
root   pts/1    Thu May 13 16:46  still logged in  
root   pts/7    Thu May 13 15:36  still logged in  
root   pts/9    Thu May 13 15:35  still logged in  

wtmp begins Thu May 13 18:55:40 2014

显示最后一列显示主机 IP 地址:

bash 复制代码
# last -n 5 -a -i
root   pts/4    Thu May 13 17:25  still logged in  192.168.1.10
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)   192.168.1.10
root   pts/1    Thu May 13 16:46  still logged in  192.168.1.10
root   pts/7    Thu May 13 15:36  still logged in  192.168.1.10
root   pts/9    Thu May 13 15:35  still logged in  192.168.1.10

wtmp begins Thu May 13 18:55:40 2014

4.安全与权限须知

  • 权限要求:普通用户执行 last 可以看到所有用户的登录记录(通常默认允许),但 lastb 可能需要 sudo 权限。
  • 日志篡改:特别注意,黑客如果有 root 权限,可以使用 shred 或 echo > /var/log/wtmp 清空日志,甚至使用 utmpdump 工具篡改时间戳。因此,last 的结果仅作为参考依据,真正的安全审计建议结合 syslog 服务器或堡垒机日志。

5.快速记忆口诀

last 看历史,wtmp 是根基;

-n 控行数,-x 看重启;

-s 和 -t 切时间,-i 显 IP 防欺骗;

配合 lastb 查爆破,安全审计不跑偏。

参考:Linux last 命令 | 菜鸟教程

相关推荐
码匠许师傅17 分钟前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
PPPPickup1 小时前
金证秋招笔试
java·开发语言
换个号退隐江湖i1 小时前
LLM 调试日志刷屏怎么办?用 tee 边看边存
linux
不正经学生1 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
ycjunhua1 小时前
Spring AI 2.0 GA:ToolCallingAdvisor 重构与 Java Agent 新范式
java·人工智能·spring
DYWorker0011 小时前
搭建嵌入式Linux虚拟机开发环境
linux
开源必胜1 小时前
Future的异常处理以及CompletableFuture传播链、异常处理
java
weipt2 小时前
从ollama到llama.cpp
linux·服务器·llama
加油码2 小时前
动静态库的链接底层原理(进阶版)
linux·c++
s_w.h2 小时前
【 计网 】计算机网络基础
服务器·计算机网络