浅谈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 命令 | 菜鸟教程

相关推荐
豆瓣鸡1 小时前
算法日记 - Day5
java·算法
yunqi1 小时前
ELK日志平台架构详解:从Filebeat采集到Elasticsearch检索的企业级日志方案实践
linux
掉鱼的猫1 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·serverless
夫唯不争,故无尤也1 小时前
Ubuntu阿里云服务器一键安装RustDesk指南
服务器·ubuntu·阿里云
学者猫头鹰1 小时前
对象存储:MinIO / 阿里云OSS
java
手揽回忆怎么睡1 小时前
Ubuntu 22.04 64位安装MinIO
linux·前端·ubuntu
阳光九叶草LXGZXJ2 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
程序员-Benothing2 小时前
Java集合:List实现类深度对比
java·开发语言·后端·面试·list
~光~~2 小时前
【嵌入式linux学习_OV8858 bring up】L1_从Sensor到RK3588发生了什么
linux·运维·学习