使用last、who、w命令及系统日志可查看Linux用户登录情况:last显示历史登录记录,who和w显示当前在线用户及活动,结合/var/log/auth.log或journalctl可深入分析登录详情与安全事件。

在Linux系统里,想知道谁在什么时候登录过,或者现在谁在线,其实有几种非常直接且常用的方法。简单来说,我们主要会用到
last
who
w
/var/log/auth.log
/var/log/secure
要查看用户的登录历史,最常用的莫过于
last
/var/log/wtmp
last
这个命令会列出用户名、登录终端、登录IP或主机名、登录时间、登出时间以及会话持续时间。有时候,你会看到
still logged in
down
而如果你想看当前谁在线,
who
w
who
who
w
w
至于更详细的,甚至包括失败的登录尝试,那就要深入到系统日志文件里了。在大多数基于Debian的系统上,是
/var/log/auth.log
/var/log/secure
grep
grep "session opened" /var/log/auth.log grep "Failed password" /var/log/auth.log
这些日志文件记录了系统认证相关的各种事件,包括成功的登录、失败的尝试、SSH连接等等。
在我看来,追踪用户登录历史,绝不仅仅是满足好奇心那么简单。它在系统安全和运维管理中扮演着核心角色。想想看,如果你的系统出现了一些异常行为,比如CPU占用率突然飙升,或者某些文件被修改了,你第一反应可能就是去查查最近谁登录过,是不是有未授权的访问。这就像是家里的门禁记录,谁进谁出,一目了然。
从安全角度讲,登录历史是发现潜在入侵行为的黄金线索。一个陌生的IP地址在半夜登录了你的服务器?或者一个不常用的账户突然活跃起来?这些都可能是安全警报。审计时,它也是合规性要求的重要组成部分,很多法规都要求企业保留一定时间的系统访问日志。此外,在日常排障中,如果某个服务出问题了,看看最近有没有哪个用户登录并执行了某些操作,也能帮助我们快速定位问题。我个人就遇到过好几次,通过查看登录历史,发现是某个同事不小心执行了错误命令导致的服务中断。所以,这不是一个可有可无的功能,而是系统健康和安全的关键一环。
last
last
last
比如,如果你只想看某个特定用户的登录历史,可以直接在
last
last username
这会过滤出该用户的所有登录记录。如果想看某个终端(比如
pts/0
last pts/0
有时候,我们可能只关心最近的几次登录,而不是所有历史记录。
last -n count
last -n 10 # 查看最近10条登录记录
更有趣的是,
last
/var/log/wtmp
lastb
/var/log/btmp
lastb
通过
lastb
wtmp
btmp
当我们谈到登录历史,尤其是更深层次的细节,系统日志文件无疑是信息最丰富的地方。前面简单提到了
/var/log/auth.log
/var/log/secure
这些日志文件详细记录了认证过程中的每一个步骤,比如SSH密钥认证、sudo操作、用户会话的开启和关闭等等。你可以用
cat
tail
less
grep
例如,要查看所有SSH相关的登录尝试,无论是成功还是失败:
grep "sshd" /var/log/auth.log
这会显示所有与
sshd
对于使用
systemd
journalctl
journalctl _COMM=sshd # 查看所有sshd服务的日志 journalctl _COMM=sshd -S "2023-01-01 00:00:00" -U "2023-01-02 00:00:00" # 查看特定时间段的sshd日志
使用
journalctl
grep
grep
journalctl
这是一个经常让人混淆的点,但理解它们之间的区别非常重要。简单来说,
who
w
last
想象一下,你走进一个办公室。
who
w
w
而
last
所以,如果你想快速了解当前系统负载和用户活动,
w
last
auth.log
w
last
以上就是Linux如何查看用户的登录历史的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号