🧭说明
lastlog 命令用于显示系统中所有用户的最近一次登录信息,对于系统安全和用户活动监控非常实用。
核心语法与选项
lastlog 命令的基本语法为 lastlog [选项]。常用的选项如下表所示:
| 选项 | 说明 |
|---|---|
-u <用户名> |
仅显示指定用户的登录信息。 |
-t <天数> |
显示在最近指定天数内有登录活动的用户。 |
-b <天数> |
显示早于指定天数前的登录记录。 |
-S |
(需与 -u 连用)将指定用户的登录记录设置为当前时间。 |
-C |
(需与 -u 连用)清除指定用户的登录记录。 |
-h |
显示帮助信息。 |
基础用法示例
下面通过几个例子来说明如何使用这些选项。
-
查看所有用户的登录信息
直接执行
lastlog命令,会列出系统中所有用户(按UID排序)的最后登录信息,包括用户名、终端端口、来源IP地址和登录时间。从未登录过的用户会显示为Never logged in。$ lastlog Username Port From Latest root pts/0 192.168.1.10 Mon Jan 20 10:30:15 +0800 2025 john pts/1 192.168.1.15 Tue Jan 21 14:22:05 +0800 2025 daemon Never logged in ... -
查询特定用户
使用
-u选项可以快速定位单个用户的信息。$ lastlog -u john Username Port From Latest john pts/1 192.168.1.15 Tue Jan 21 14:22:05 +0800 2025 -
筛选登录时间
结合
-t和-b选项,可以筛选在特定时间范围内有过登录行为的用户。-
查看最近7天内登录过的用户:
bashlastlog -t 7 -
查看超过30天未登录的用户:
bashlastlog -b 30
-
实用技巧与注意事项
-
查找休眠账户 :一个非常实用的安全技巧是结合
grep命令快速找出所有从未登录过的系统账户,这有助于识别和清理不必要的账户。bashlastlog | grep "Never logged in" -
权限要求 :
lastlog命令读取的是/var/log/lastlog文件,因此通常需要 root 权限 才能获得完整的输出结果。在普通用户下执行,可能无法看到所有用户的信息。 -
谨慎使用管理选项 :
-S(设置)和-C(清除)选项可以直接修改登录记录,请谨慎使用,通常用于特定的系统维护或调试场景。