上一篇
Linux如何实时查看在线用户人数?,一招搞定Linux用户登录数查询
- Linux
- 2025-06-11
- 4184
在Linux中,使用
who
命令查看登录用户列表,执行
who | wc -l
统计登录会话数(含重复登录),使用
w
命令首行直接显示当前登录用户数(会话数),若需唯一用户数,运行
who | awk '{print $1}' | sort -u | wc -l
。
在Linux系统中,实时监控登录用户数量是系统管理和安全审计的基础操作,无论是排查异常登录、分配资源还是维护系统安全,掌握以下方法至关重要,以下是6种专业可靠的方法,均通过终端命令实现:
方法1:who
命令(推荐)
命令:
who | wc -l
作用:
who
列出当前所有登录用户及终端信息wc -l
统计行数(即用户数)
输出示例:user1 tty1 2025-10-01 09:30 user2 pts/0 2025-10-01 10:15 (192.168.1.5) # 执行统计后显示:2
适用场景:快速查看活跃登录数,无需安装额外工具。
方法2:w
命令(详细信息)
命令:
w -h | wc -l
作用:
w -h
隐藏表头,直接输出用户列表- 统计结果更精准(包含用户名、IP、进程等)
输出示例:10:20:01 up 2 days, 5 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 tty1 - 09:30 2:00m 0.10s 0.00s /bin/bash # 统计后显示:1(忽略表头行)
优势:同时显示用户活动状态,适合深度监控。
方法3:users
命令(极简列表)
命令:
users | tr ' ' 'n' | sort | uniq | wc -l
作用:
users
输出所有登录用户名(重复显示多终端登录)tr
+sort
+uniq
去重后统计独立用户数
输出示例:user1 user1 user2 # 统计后显示:2(user1重复登录两次,但计为1个用户)
适用场景:精确计算独立用户数量,忽略同一用户的多终端登录。
⏳ 方法4:last
命令(历史登录审计)
命令:
last | grep "still logged in" | wc -l
作用:
- 筛选
still logged in
状态(当前仍在线) - 统计结果包含所有终端(包括GUI/TTY)
输出示例:user1 tty1 still logged in Mon Oct 1 09:30 user2 pts/0 192.168.1.5 still logged in Mon Oct 1 10:15 # 统计后显示:2
优势:兼容性强,适用于所有Linux发行版。
️ 方法5:检查 /var/run/utmp
文件(底层数据)
命令:
utmpdump /var/run/utmp | grep -c "LOGIN_PROCESS"
作用:
utmpdump
解析登录记录文件(需安装sysvinit-utils
包)grep -c
统计活跃会话数
适用场景:脚本自动化处理或审计场景。
方法6:finger
命令(需安装)
安装与使用:
sudo apt install finger # Debian/Ubuntu sudo yum install finger # CentOS/RHEL finger | grep -v "Login" | wc -l # 排除表头后统计
输出示例:
Login Name Tty Idle Login Time Office user1 tty1 2:00 Oct 1 09:30 # 统计后显示:1
注意:非默认安装,适用于需要详细用户信息的场景。
总结与建议
场景 | 推荐命令 | 特点 |
---|---|---|
快速统计当前用户数 | who |
简单高效,系统预装 |
查看用户活动详情 | w |
包含IP、进程等关键信息 |
精确计算独立用户 | users |
自动去重 |
审计历史登录记录 | last |
支持时间范围筛选 |
最佳实践:日常使用
who | wc -l
或w -h | wc -l
即可满足需求;安全审计建议结合last
和/var/run/utmp
分析。
安全提示:
- 定期检查登录用户可及时发现未授权访问(如陌生IP或用户名)
- 可疑登录立即用
pkill -KILL -t [终端名]
强制下线 - 关键服务器建议启用
fail2ban
或配置SSH密钥认证
引用说明: 基于Linux核心工具(GNU coreutils)的官方文档及man
手册页验证,符合POSIX标准,数据来源包括:
- Linux Programmer’s Manual (
man who
,man w
) - The Open Group Base Specifications Issue 7 (IEEE Std 1003.1)
- Ubuntu Manpage Repository (utmpdump, finger)
操作前请确保您拥有合法权限,避免对生产环境造成影响。