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地址等底层信息,适合高级分析。
特殊场景处理
- 无图形界面服务器:优先使用
who
或w
- 排查可疑登录:
who | grep 'pts' # 检查所有远程连接 last | grep 'still logged in' # 确认当前会话
- 用户操作监控:
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