who
或w
命令查看登录用户信息,统计总登录次数:who | wc -l
,统计不同用户数量:who | cut -d' ' -f1 | sort -u | wc -l
。在Linux系统中,监控当前登录用户是系统管理和安全审计的重要环节,无论是排查异常访问、统计活跃会话,还是优化资源分配,掌握准确的方法都至关重要,以下是几种专业、高效且可靠的查看登录用户的方式:
🔍 方法1:使用 w
命令(推荐)
命令:
w
输出示例:
12:30:45 up 10 days, 3:22, 3 users, load average: 0.08, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
john pts/0 192.168.1.101 11:45 5.00s 0.05s 0.00s sshd: john [priv]
lisa pts/1 203.0.113.42 12:10 20:39 0.02s 0.02s -bash
root tty1 :0 09:15 3:15m 0.10s 0.08s /usr/bin/Xorg
解读:
- USER:登录用户名。
- TTY:终端类型(
pts
为远程终端,tty
为本地终端)。 - FROM:用户IP地址(本地用户显示
:0
)。 - IDLE:空闲时间(
20:39
表示20分39秒)。 - WHAT:用户正在执行的命令。
优势:实时显示用户数、系统负载及活动进程,信息最全面。
📋 方法2:使用 who
命令
命令:
who
输出示例:
john pts/0 2025-05-15 11:45 (192.168.1.101)
lisa pts/1 2025-05-15 12:10 (203.0.113.42)
root tty1 2025-05-15 09:15 (:0)
解读:
- 每行代表一个登录会话,包含用户名、终端、登录时间和来源IP。
- 统计用户总数:
who | wc -l
适用场景:快速查看活跃会话,适合脚本自动化统计。
📊 方法3:使用 users
命令(极简统计)
命令:
users
输出示例:
john lisa root
解读:
- 直接列出所有登录用户名(重复出现表示同一用户多终端登录)。
- 统计总数:
users | wc -w
优势:输出简洁,适合嵌入脚本或监控工具。
⚠️ 注意事项与进阶技巧
-
区分真实用户与系统用户:
- 登录用户通常是
/etc/passwd
中UID≥1000的普通用户(Ubuntu/CentOS)。 - 系统用户(如
www-data
)一般不直接登录,需结合last
命令审计历史记录:last | grep "still logged in"
- 登录用户通常是
-
排除非活跃会话:
- 使用
w
或who
查看IDLE
时间,长时间空闲可能是异常会话(如被入侵的僵尸连接)。
- 使用
-
安全审计建议:
- 定期检查
/var/log/secure
(RHEL/CentOS)或/var/log/auth.log
(Debian/Ubuntu)记录认证日志。 - 禁用无用账户:
sudo usermod -L 用户名
(锁定账户)。
- 定期检查
命令 | 适用场景 | 关键信息 |
---|---|---|
w |
实时监控用户及活动 | 用户数、IP、进程、负载 |
who |
快速会话列表 | 用户名、来源、登录时间 |
users |
极简用户名统计 | 去重计数 |
最佳实践:日常运维推荐 w
,脚本处理优先 who
或 users
,定期审计登录记录是保障系统安全的基础措施。
引用说明基于Linux核心工具(util-linux包)的官方文档及Red Hat/CentOS、Debian/Ubuntu系统管理指南,命令兼容主流发行版(如Ubuntu 22.04、CentOS 7+),数据来源可靠,符合系统管理最佳实践。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/19269.html