首页/系统/Linux 运维命令速查/lastlog 查看各账号最近登录

lastlog 查看各账号最近登录

lastlog 汇总每个用户最后一次登录时间与来源 IP;快速发现长期未登录的僵尸账号或异常登录。

Linux 运维命令速查系统更新于 2026-10-13

谁最近登录过

lastlog 读取系统维护的登录记录,按账号逐行列出最后一次登录的时间与来源地址。它的用途不是审计流水,而是快速筛出「长期没人用的账号」和「某人从意外地址登录过」。在账号治理与安全基线检查里,它通常与账号锁定状态、登录 shell 设置一起看。

基本信息

适用平台Linux(shadow-utils 或 util-linux 提供)
语法lastlog [选项],常用 -u 指定用户
数据来源/var/log/lastlog 稀疏文件,按账号编号索引
权限要求读取全部账号记录通常需要相应权限

典型使用场景

  • 安全基线检查:找出从未登录却仍可登录的账号
  • 确认某个运维账号最近一次登录的时间与来源地址
  • 交接或离职流程中核对账号是否还有人在用
  • 排查异常登录,对比来源地址与常见维护网段
  • 确认刚创建的账号是否已被使用过

常用示例

常用示例
lastlog                          # 列出所有账号的最近登录情况
lastlog -u deploy                # 只看指定账号
lastlog | head -5                # 查看前几行输出格式
lastlog | awk '$2=="**"{print $1}'   # 筛出从未登录过的账号
lastlog | grep -v 'Never logged in' | head   # 只看有登录记录的账号
last -n 20                       # 看最近 20 条登录流水(含本次)

输出逐列读法

列含义关注点
用户名系统账号名与账号清单交叉核对
端口登录来源端口或方式无记录时显示占位符
来源登录来源地址或终端出现在非维护网段时需要确认
最近登录时间最后一次登录时刻长期为空的账号重点评估
无登录记录显示从未登录或占位符筛选僵尸账号的主要依据
记录保存在按账号编号索引的稀疏文件里,删除或回滚该文件会让历史记录一次性消失,做账号治理前先备份。

配合检查项

  • 核对账号的登录 shell 是否为不可登录类型
  • 确认账号是否处于锁定状态以及锁定原因
  • 比对该账号在登录流水里的最近若干条记录
  • 检查是否存在免密或密钥登录留下的痕迹
  • 把结论与账号清单一起归档,作为治理依据
切换用户、以服务方式启动的进程都不算交互式登录,不会体现在这份记录里,判断账号活跃度时不要只看这一个来源。

易错点

  • 记录来自一个按账号编号索引的文件,删除或回滚它会让历史记录整体消失
  • 服务账号与系统账号本来就不登录,列表里大量从未登录属于正常,甄别要看登录 shell 设置
  • 只凭这一份记录判断账号活跃度会漏掉非交互式使用,需要与登录流水、审计记录交叉验证
  • 长期不核查这份记录,僵尸账号会一直保留可登录状态

数据来源与参考

  • man 8 lastlog(shadow-utils)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌