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如何设置代理IP?

    在Linux系统中配置代理IP是突破网络限制、提高访问速度或保护隐私的常见需求,本文将详细介绍多种代理配置方法,涵盖环境变量、工具代理、系统级代理等场景,帮助用户根据实际需求灵活选择,环境变量配置(基础通用方法)环境变量配置是最简单直接的代理设置方式,适用于大多数命令行工具(如curl、wget、apt等)和脚……

    2025年9月18日
    10800
  • Linux如何更改文件后缀名?具体操作步骤是什么?

    在Linux系统中,文件后缀名(扩展名)虽然不强制要求文件必须遵循,但它是系统和应用程序识别文件类型的重要依据,txt通常表示文本文件,.png表示图片文件,更改文件后缀名是常见的文件管理操作,可能用于修复文件类型错误、统一文件格式、适配特定程序需求等,本文将详细介绍Linux中更改文件后缀名的多种方法,涵盖命……

    2025年9月19日
    13300
  • Linux用U盘竟如此简单?

    插入U盘与自动挂载插入U盘将U盘插入USB接口,系统通常会自动识别并挂载,桌面环境(如GNOME、KDE)会弹出通知,并在文件管理器中显示U盘图标,访问U盘内容打开文件管理器(如Nautilus、Dolphin),在侧边栏的”设备”或”可移动设备”中找到U盘,点击即可访问文件,手动挂载U盘(适用于无桌面环境或自……

    2025年7月9日
    16900
  • Linux下Boost多线程库如何编译?

    在Linux环境下使用Boost多线程库需要先编译Boost源码并启用多线程支持,随后在项目中正确链接相关库,以下是详细步骤和注意事项:Boost多线程库简介Boost多线程库是Boost库的重要组成部分,提供了跨平台的线程管理、同步原语(互斥量、条件变量、线程局部存储等)等功能,支持C++98及以上标准,在L……

    2025年9月8日
    15800
  • Linux如何强制注销远程用户?

    查看当前登录用户操作前需确认目标用户及会话信息:who -u # 显示用户、终端、IP、登录时间和进程ID(PID)w # 显示更详细信息(包括执行命令)loginctl list-sessions # 通过systemd查看会话(适用于现代Linux发行版)输出示例:root pts/0 2023-10-01……

    2025年7月1日
    17200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信