首页 > 运维 > linux运维 > 正文

Linux如何查看用户登录历史记录

P粉602998670
发布: 2025-09-08 10:53:01
原创
486人浏览过
使用last、who、w命令及/var/log/auth.log等日志文件可追踪Linux用户登录时间、IP及行为,通过分析登录时间、来源IP和失败尝试可识别异常活动。

linux如何查看用户登录历史记录

Linux系统里,想知道谁在什么时候登录过、从哪里登录,其实有几套方法可以帮我们摸清这些情况。最直接的,就是利用几个系统自带的命令和日志文件。它们能帮你追踪用户活动,无论是为了安全审计还是日常管理,都非常实用。

解决方案

要深入查看登录历史,我们通常会用到

last
登录后复制
who
登录后复制
w
登录后复制
这些命令,以及系统日志文件
/var/log/auth.log
登录后复制
(或在某些系统上是
/var/log/secure
登录后复制
)。

  • last
    登录后复制
    命令: 这是我的首选,因为它能非常直观地列出所有用户的登录和注销记录。它读取
    /var/log/wtmp
    登录后复制
    文件,能告诉你用户是谁、从哪个终端(或IP地址)登录、登录时间、持续了多久,以及何时注销。

    • 比如,简单地输入
      last
      登录后复制
      ,你就能看到一长串历史记录。
    • 如果想看更详细的登录/注销时间戳,加上
      -F
      登录后复制
      参数会显示完整的日期和时间,精确到秒。
    • last -a
      登录后复制
      会把登录IP地址显示在最后一列,方便我们一眼识别。
    • last -x
      登录后复制
      则能显示系统关机、重启以及运行级别变化的记录,这对于追踪系统中断事件很有用。
      last
      last -F
      last -a
      last -x reboot  # 查看系统重启历史
      登录后复制

      在我处理一些服务器问题时,

      last
      登录后复制
      命令经常能快速定位到某个异常登录的时间点,或者确认系统是否在非计划内重启过。

  • who
    登录后复制
    命令: 这个命令就比较简单粗暴了,它主要显示当前登录到系统的所有用户。你会看到用户名、终端类型、登录时间,以及登录来源(如果是远程登录)。

    who
    登录后复制

    我一般用它来快速看看当前谁在线,比如想找某个同事沟通时,先用

    who
    登录后复制
    看看他是不是在线。

  • w
    登录后复制
    命令:
    who
    登录后复制
    更进一步,
    w
    登录后复制
    不仅显示当前登录的用户,还会列出他们正在执行的进程。这对于快速了解系统负载和用户活动非常有帮助。

    w
    登录后复制

    有时候我发现系统有点慢,用

    w
    登录后复制
    就能很快看到是不是有某个用户正在跑一个很吃资源的命令。

  • /var/log/auth.log
    登录后复制
    (或
    /var/log/secure
    登录后复制
    ):
    如果说
    last
    登录后复制
    提供了概览,那这个日志文件就是详细的“账本”。它记录了所有与认证相关的事件,包括成功的登录、失败的登录尝试、SSH连接、sudo使用等。

    • 在基于Debian/Ubuntu的系统上,通常是
      /var/log/auth.log
      登录后复制
    • 在基于RHEL/CentOS的系统上,则是
      /var/log/secure
      登录后复制
    • 我们可以用
      cat
      登录后复制
      tail
      登录后复制
      grep
      登录后复制
      来查看这些文件。
      tail -f /var/log/auth.log  # 实时查看新的认证事件
      grep "Accepted password" /var/log/auth.log # 查找成功的SSH登录
      grep "Failed password" /var/log/auth.log   # 查找失败的登录尝试
      登录后复制

      这个文件内容非常丰富,但也因此可能显得有点“杂乱”,需要用

      grep
      登录后复制
      精心筛选才能找到你需要的信息。我经常用它来排查为什么某个用户无法登录,或者有没有人在尝试暴力破解SSH密码。

Linux如何查看用户登录历史记录

如何查看特定用户的登录记录,以及登录IP地址?

想追踪某个特定用户的登录轨迹,或者确认他们是从哪个IP地址登录的,这其实是个很常见的需求。我们手头有几个工具可以很好地完成这个任务。

最直接的方法,还是利用

last
登录后复制
命令。你只需要在
last
登录后复制
后面加上用户名,它就会过滤出这个用户的所有登录和注销记录。

last <username>
登录后复制

例如,要查看用户

john
登录后复制
的登录历史,就输入
last john
登录后复制
。输出会清晰地列出
john
登录后复制
每次登录的时间、持续时长以及登录来源。配合
-a
登录后复制
参数,你还能更直观地看到登录IP地址。

last -a john
登录后复制

这样,IP地址会显示在最后一列,一目了然。

如果需要更细致的、包含失败尝试的记录,或者想看看SSH登录的具体细节,那就得翻阅认证日志文件了。在

/var/log/auth.log
登录后复制
(或
/var/log/secure
登录后复制
)中,你可以使用
grep
登录后复制
命令来筛选特定用户的相关条目。

grep "john" /var/log/auth.log
登录后复制

这会显示所有包含“john”这个字符串的认证事件。你可能会看到成功的SSH登录(

Accepted password for john from ...
登录后复制
)、失败的密码尝试(
Failed password for john from ...
登录后复制
),甚至是
sudo
登录后复制
命令的使用记录。这些记录中通常会包含登录的源IP地址。 有时候,仅仅
grep "john"
登录后复制
可能会显示太多无关信息。我个人会更精确地筛选,比如只看成功的SSH登录:

grep "Accepted password for john from" /var/log/auth.log
登录后复制

通过这种方式,你不仅能看到用户登录的历史,还能对他们的登录行为(包括异常尝试)有一个全面的了解。这对于安全审计和问题排查来说,简直是利器。

如知AI笔记
如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

如知AI笔记 27
查看详情 如知AI笔记
Linux如何查看用户登录历史记录

登录日志文件通常存储在哪里,以及如何解读关键信息?

Linux系统的登录日志文件散落在

/var/log/
登录后复制
目录下,但它们各自记录的内容和用途略有不同。理解这些文件的作用,对于我们分析登录行为至关重要。

  • /var/log/wtmp
    登录后复制
    这个文件被
    last
    登录后复制
    命令读取,存储了所有用户的登录和注销历史。它是一个二进制文件,不能直接用文本编辑器打开,必须通过
    last
    登录后复制
    命令来解析。它记录了用户的登录终端、登录IP、登录时间以及注销时间。

    • 解读关键信息:
      last
      登录后复制
      命令的输出直接就是对
      wtmp
      登录后复制
      的解读。关注用户名、
      tty
      登录后复制
      (终端类型,如
      pts/0
      登录后复制
      表示远程终端)、
      from
      登录后复制
      (登录来源IP或主机名)、
      login time
      登录后复制
      logout time
      登录后复制
      (或
      still logged in
      登录后复制
      )。异常登录时间、不熟悉的IP地址都是需要警惕的信号。
  • /var/run/utmp
    登录后复制
    这个文件被
    who
    登录后复制
    w
    登录后复制
    命令读取,记录了当前登录到系统的用户信息。它也是一个二进制文件,实时更新。

    • 解读关键信息:
      who
      登录后复制
      w
      登录后复制
      的输出是对
      utmp
      登录后复制
      的解读。它告诉你当前谁在线、从哪里登录、以及登录了多久。
      w
      登录后复制
      命令还会显示用户当前正在执行的命令,这对于监控实时用户活动很有帮助。
  • /var/log/auth.log
    登录后复制
    (Debian/Ubuntu) 或
    /var/log/secure
    登录后复制
    (RHEL/CentOS):
    这是认证相关的核心日志文件,以纯文本形式存储,可以直接用
    cat
    登录后复制
    tail
    登录后复制
    less
    登录后复制
    查看。它记录了所有与用户认证和授权相关的事件,包括:

    • 成功的用户登录(SSH、sudo等)
    • 失败的登录尝试(密码错误、用户不存在等)
    • sudo
      登录后复制
      命令的使用
    • sshd
      登录后复制
      服务启动和停止
    • 解读关键信息: 这个文件内容丰富,但通常结构化。每一行都包含时间戳、主机名、进程名(如
      sshd
      登录后复制
      sudo
      登录后复制
      )、以及具体事件描述。
      • 查找
        Accepted password for <user> from <IP>
        登录后复制
        表示成功的登录。
      • 查找
        Failed password for <user> from <IP>
        登录后复制
        表示失败的登录尝试。
      • Invalid user <user> from <IP>
        登录后复制
        表示尝试登录一个不存在的用户。
      • sudo: <user> : TTY=<tty> ; PWD=<pwd> ; USER=<target_user> ; COMMAND=<command>
        登录后复制
        记录了
        sudo
        登录后复制
        命令的使用。
    • 这些日志文件通常会通过
      logrotate
      登录后复制
      进行轮换和压缩,以防止占用过多磁盘空间。旧的日志文件可能会以
      auth.log.1
      登录后复制
      auth.log.2.gz
      登录后复制
      等形式存在,如果需要查看更久远的记录,你可能需要解压并查看这些归档文件。

理解这些文件的存储位置和内容,就像是拥有了一份系统的“活动报告”。通过它们,我们能更全面、更细致地掌握系统上的用户行为,这对于维护系统安全和稳定性是不可或缺的。

Linux如何查看用户登录历史记录

如何追踪异常登录行为或潜在的安全威胁?

追踪异常登录行为是系统安全管理中非常关键的一环。在我看来,这不仅仅是查日志那么简单,更是一种结合了观察、分析和判断的艺术。我们不能指望系统会直接告诉你“这里有威胁”,而是要通过解读日志数据,找出那些不符合常规的模式。

  • 关注非正常时间段的登录: 大多数用户都有固定的工作时间。如果发现有用户在凌晨两三点,或者非工作日登录,尤其是那些平时不怎么加班的用户,这就很可疑了。结合

    last
    登录后复制
    命令的输出,很容易就能发现这些“夜猫子”或“周末访客”。

    last -F | less # 详细查看带时间戳的登录记录
    登录后复制

    我通常会把这些非正常时间的登录记录单独拎出来,和用户本人确认一下。

  • 警惕来自陌生或不寻常IP地址的登录: 如果你的用户通常从公司内部网络或固定的几个外部IP登录,那么来自完全陌生国家或地区IP的登录尝试(无论是成功还是失败),都应该立即引起注意。

    • 使用
      last -a
      登录后复制
      可以快速看到登录IP。
    • /var/log/auth.log
      登录后复制
      中,
      grep "Accepted password"
      登录后复制
      grep "Failed password"
      登录后复制
      后面跟着的IP地址是关键信息。
      grep "Accepted password" /var/log/auth.log | awk '{print $NF}' | sort | uniq -c # 统计成功登录的IP地址及次数
      grep "Failed password" /var/log/auth.log | awk '{print $NF}' | sort | uniq -c  # 统计失败登录的IP地址及次数
      登录后复制

      如果发现某个IP地址有大量的失败登录尝试,那几乎可以肯定是有人在尝试暴力破解。这时,你可能需要考虑在防火墙层面直接封禁这个IP,或者使用像

      fail2ban
      登录后复制
      这样的工具来自动化处理。

  • 频繁的失败登录尝试: 这是最明显的安全威胁信号之一。在

    auth.log
    登录后复制
    中,连续出现某个用户或多个用户的
    Failed password
    登录后复制
    记录,表明有人在尝试猜测密码。这可能是自动化攻击,也可能是内部人员的恶意行为。

    grep "Failed password" /var/log/auth.log
    登录后复制

    当你看到几十甚至上百条来自同一个IP或针对同一个用户的失败记录时,就得立刻采取行动了。

  • 检查不存在用户的登录尝试: 有时攻击者会尝试一些常见的用户名(如

    admin
    登录后复制
    ,
    test
    登录后复制
    ,
    root
    登录后复制
    ),即使这些用户在你的系统上不存在。
    Invalid user <user> from <IP>
    登录后复制
    这样的日志条目就是线索。这表明攻击者在进行用户枚举,试图找出系统上存在的有效账户。

我的经验是,定期(比如每天或每周)浏览一下

auth.log
登录后复制
中关于失败登录的记录,并快速扫一眼
last
登录后复制
的输出,就能帮助我们及时发现大部分潜在问题。不要等到系统真正被攻破了才去查日志,那往往就晚了。日志是我们的眼睛,帮助我们看到系统内部正在发生的一切。

以上就是Linux如何查看用户登录历史记录的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号