🧭说明
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天内登录过的用户:
lastlog -t7 - 查看超过30天未登录的用户:
lastlog -b30
- 查看最近7天内登录过的用户:
实用技巧与注意事项
查找休眠账户:一个非常实用的安全技巧是结合
grep命令快速找出所有从未登录过的系统账户,这有助于识别和清理不必要的账户。lastlog|grep"Never logged in"权限要求:
lastlog命令读取的是/var/log/lastlog文件,因此通常需要root 权限才能获得完整的输出结果。在普通用户下执行,可能无法看到所有用户的信息。谨慎使用管理选项:
-S(设置)和-C(清除)选项可以直接修改登录记录,请谨慎使用,通常用于特定的系统维护或调试场景。