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