Linux如何查看在线用户?

who 命令:基础登录信息

作用:显示当前登录系统的用户信息(用户名、终端、登录时间及来源IP)。
命令示例

who

输出解析

root     pts/0        2025-06-15 09:30 (192.168.1.10)
alice    tty2         2025-06-15 10:15 (:0)
  • pts/0:伪终端(远程登录如SSH)
  • tty2:物理终端或本地控制台
  • (:0):本地图形界面登录

常用参数

  • who -u:显示空闲时间(IDLE列)
  • who -H

w 命令:详细用户活动

作用:综合显示登录用户、当前进程及系统负载(更全面)。
命令示例

w

输出解析

 11:20:03 up  2:30,  2 users,  load average: 0.15, 0.08, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.10     09:30    1:30m  0.10s  0.00s sshd: root
alice    tty2     :0               10:15    5.00s  1:20   0.02s /usr/bin/bash
  • JCPU:该终端所有进程占用CPU时间
  • WHAT:用户当前运行的命令

users 命令:极简用户名列表

作用:仅输出登录用户名(适合脚本处理)。
命令示例

users

输出

root alice

last 命令:历史登录记录

作用:查看近期登录/注销记录(含已离线用户)。
命令示例

last | head -n 5

输出解析

root     pts/0        192.168.1.10     Mon Jun 15 09:30   still logged in
alice    tty2         :0               Mon Jun 15 10:15   still logged in
reboot   system boot  5.4.0-91-generic Mon Jun 15 09:25   still running
  • still logged in:标记当前在线的用户
  • 数据来源:/var/log/wtmp(需root权限访问)

utmpdump 工具:原始登录数据

作用:直接解析登录记录文件 /var/run/utmp(需安装)。
安装与使用

sudo apt install sysvinit-utils  # Debian/Ubuntu
sudo yum install sysvinit-tools  # CentOS/RHEL
sudo utmpdump /var/run/utmp

输出特点
包含终端类型、进程ID、IP地址等底层信息,适合高级分析。


特殊场景处理

  1. 无图形界面服务器:优先使用 whow
  2. 排查可疑登录
    who | grep 'pts'  # 检查所有远程连接
    last | grep 'still logged in'  # 确认当前会话
  3. 用户操作监控
    w -i  # 显示IP地址(替代who -u)

总结与建议

命令 适用场景 优势
who 快速查看基础登录信息 简洁、系统默认安装
w 监控用户活动及系统负载 集成进程和资源数据
last 审计历史登录(含离线用户) 安全分析必备
utmpdump 深度分析登录数据 底层信息完整

安全提示

  • 定期检查 /var/log/secure(RHEL/CentOS)或 /var/log/auth.log(Debian/Ubuntu)获取认证日志。
  • 异常IP立即封锁:sudo fail2ban-client set sshd banip <IP>

引用说明: 基于Linux man-pages(who(1), w(1), last(1))及Filesystem Hierarchy Standard(FHS 3.0)中对系统日志路径的定义,实践环境为Ubuntu 22.04 LTS及CentOS 7,兼容主流Linux发行版。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9045.html

(0)
酷番叔酷番叔
上一篇 2025年7月28日 15:53
下一篇 2025年7月28日 16:05

相关推荐

  • Linux下如何配置串口通信的详细步骤?

    在Linux系统中,串口通信是一种常见的设备间数据交互方式,广泛应用于嵌入式开发、工业控制、传感器数据采集等领域,配置串口通信涉及硬件连接、驱动加载、参数设置、权限管理及软件测试等多个环节,以下将详细说明具体步骤和注意事项,硬件连接与驱动检查硬件连接首先需要确保物理连接正确,Linux下的串口设备分为内置串口……

    2025年10月8日
    6700
  • linux如何制作镜像

    Linux 中,可使用 dd 命令制作镜像,如 `dd if=/dev/sdX of=/path/to/image.

    2025年8月10日
    8200
  • Linux中如何修改GRUB配置文件?

    在Linux系统中,GRUB(Grand Unified Bootloader)是广泛使用的引导加载程序,负责在系统启动时加载内核并初始化系统,修改GRUB配置文件可以自定义启动选项、默认启动项、超时时间等,满足个性化或故障排查需求,本文将详细介绍Linux中修改GRUB配置文件的完整流程,包括配置文件位置、关……

    2025年9月21日
    7900
  • linux虚拟机如何连外网

    在Linux虚拟机的使用过程中,连接外网是基础且关键的操作,无论是开发调试、软件安装还是访问网络资源,都离不开稳定的网络连接,本文将详细讲解Linux虚拟机连接外网的常见方法、配置步骤及问题排查,帮助用户顺利实现网络互通,虚拟机网络模式选择虚拟机软件(如VMware、VirtualBox等)提供了多种网络模式……

    2025年9月10日
    7500
  • Linux编译为何离不开强大工具链?

    编译的核心步骤代码编译分为四个阶段,以C语言为例(使用GCC编译器):预处理(Preprocessing)处理宏定义、头文件包含和条件编译,命令:gcc -E source.c -o source.i生成:.i 文件(展开后的纯代码),编译(Compilation)将预处理后的代码转换为汇编语言,命令:gcc……

    2025年7月27日
    10000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信