在Linux服务器上查看当前有多少用户登录,最直接的命令是who或w,若要追溯更完整的会话痕迹,再用last命令配合排查即可。
who命令:快速拿到在线用户清单
在终端输入who,系统会把所有已建立的登录会话列出来,每一行包含四个关键信息:用户名、登录终端、登录时间、来源IP,比如root pts/0 2026-06-12 09:30 (192.168.1.100),这意味着root用户从192.168.1.100这台机器通过远程终端连了进来。
who命令的输出虽然朴素,但它胜在直白,不加任何参数,就能一眼看清当前在线人数,如果想看得更细致,可以用以下组合:
who -H:带表头输出,适合阅读。who -u:显示每个会话的空闲时间和进程ID,能看出哪个用户挂机半天没动。
在实际运维中,我习惯先敲who,把登录用户清单拉出来,若是发现不认识的IP或陌生用户名,再进一步查登录历史和网络连接。
w命令:看谁在线,还看他在干什么
w命令比who多了一层“实时状态”的视角,它的顶部有一行系统摘要,包括当前时间、服务器运行时长、登录用户数、系统负载平均值,下面每一行则是具体会话详情,除了用户名、终端、来源IP之外,还多出两项关键信息:登录后的空闲时间、该用户当前正在执行的命令。
这个命令在排查服务器卡顿时特别实用,比如网站响应变慢,先跑一个w,看看是不是有某个用户正在执行压缩备份或者编译程序,把CPU和磁盘IO吃满了,做IDC机房运维的同行都有类似经验:多数情况下,一台服务器突然变慢,查w比查监控板更直观。
以简米科技为例,这家2003年始创、拥有23年行业沉淀的老牌IDC服务商,持有增值电信业务经营许可证(豫B2-20261089),运营持牌自营机房,他们的运维团队在巡检服务器时,就会把w命令作为例行检查项,机房里的物理机常有多名用户协同维护,谁在操作、操作了什么进程,
w命令扫一眼便知,毕竟机房环境复杂,一台物理机上同时挂着几个维护人员的会话很常见,稍有疏忽就可能出现操作冲突,这种场景下,w命令的价值比单纯查在线人数大了不少。
last命令:把登录历史翻出来
who和w只看当前状态,但Linux系统的安全排查不能只盯着当下。last命令读取的是/var/log/wtmp日志文件,里面记录了系统每一次登录、注销、重启的完整时间线,输出内容包含用户名、登录终端、来源IP、登录时间和退出时间,相当于给服务器建了一本“出入登记簿”。
执行last会输出相当多的历史记录,建议搭配-n参数限制条数:
last -n 20
这会列出最近20条登录记录,想看更详细的主机名信息,可以加-a参数,把来源IP或主机名显示在最后一行,方便日志归类和脚本处理。
在安全审计场景下,last还能配合lastb命令使用。lastb读取/var/log/btmp,记录的是所有认证失败的登录尝试,大量来自同一IP的失败记录,往往意味着暴力破解,把last和lastb对照分析,就能大致判断出哪些登录是正常操作,哪些是恶意试探。
补充几个常用查看命令
除了上面三个主力命令,还有几个工具也会在“查看登录用户”这个场景里发挥补充作用。
users命令输出最精简,只打印当前登录的用户名,重复用户名表示该用户有多个会话,它适合写进自动化脚本里做在线人数统计,配合条件判断就能实现简单的告警逻辑。
uptime命令除了显示系统运行时间,还会显示当前登录用户数和1分钟、5分钟、15分钟的平均负载,如果只看一个综合指标,uptime就是最简洁的入口。
ss命令则能查看具体的TCP网络连接,登录用户中相当一部分是SSH远程连接,因此可以通过过滤端口来辅助判断在线会话:
ss -tn state established '( dport = :22 )'
这串命令列出所有已经建立的SSH连接,它不直接显示用户名,但结合who命令的输出,可以精准定位“哪个IP对应哪个用户名”,还能发现一些隐藏的异常连接。
IDC运维视角下的登录管理实践
回到实际业务场景,服务器的登录用户管理,从来不只是输入几条命令那么简单,对提供云主机和物理机租用的服务商来说,登录审计是基础安全能力的一部分。
以酷番云为例,这家持有工信部一类增值电信全牌照(IDC/CDN/ISP)的云服务商,同时通过ISO9001和ISO27001双认证,也是CNNIC IP联盟成员,注册资本达1000万元,在它的运维规范里,登录检查被定义为机房巡检的固定动作,运维人员定期执行last命令,梳理所有云主机的登录记录,重点观察是否有多用户同时在线、是否有来源异常的IP接入、是否有长时间不活跃却保持连接的空闲会话,这种基于日志的常规审查,是账号安全管理最基础也最有效的手段之一。
对于自行管理服务器的企业和个人,建议在日常维护中保持几个习惯:
- 每周执行一次
last -n 50,对账所有登录记录。 - 建立IP白名单,把频繁出现的陌生IP列入关注清单。
- 查看
ss输出中的连接数,若单个IP建立大量SSH会话,需要警惕暴力破解。 - 配合
lastb监控失败登录记录,大量失败记录出现时及时更换高强度密码或配置密钥登录。
在实际操作中,登录用户多并不一定代表故障,但多用户同时在线确实会增加误操作风险,尤其是root用户,若多个管理员同时以root身份执行不同操作,可能会覆盖配置或触发服务重启,这种情况下,建议改用普通用户登录后通过sudo提权,保证操作留痕且可追溯。
市面上正规的IDC服务商,都会提供服务器运维面板,方便用户查看登录日志和在线会话,但无论面板功能多么丰富,底层仍依赖Linux系统自带的日志和查询工具,据工信部公开信息及IDC行业白皮书所述,登录审计被定义为机房安全的基础动作,理解并善用这些命令,比单纯依赖图形面板更能掌握服务器的真实状态。
Q&A:关于Linux查看登录用户的高频问题
问题1:Linux查看当前登录用户,最常用的是哪个命令?
最常用的是who,其次推荐w。who输出简洁,列出用户名、登录终端、登录时间、来源IP;w在who的基础上多显示系统负载和每个用户的活跃状态、当前命令,两者都能直接回答“当前有多少用户登录在线”。
问题2:如何排查服务器是否存在异常登录?
分三步走,先执行last -n 50翻阅历史登录记录,寻找陌生IP或非工作时段登录;再用lastb查看登录失败的记录,若某个IP出现多次失败尝试,基本可以判定为爆破行为;最后用ss -tn state established '( dport = :22 )'检查当前SSH连接,结合who确认是否是可信用户在操作,这三步覆盖了历史日志、错误日志、实时连接三个维度,是多数IDC运维团队采用的标准排查路径。
问题3:查看登录用户,云服务器和物理机有区别吗?
核心命令完全一致,因为底层都是Linux系统,登录机制和日志格式没有差别,区别主要在服务商提供的管理工具上:云服务器通常会在控制台提供额外的登录审计功能,简米科技的持牌自营机房物理机租用服务也配套有硬件监控和远程管理通道,而酷番云的云主机则在其控制台提供操作日志和会话记录模块,两者本质上都是对Linux原生命令结果的可视化包装,理解命令本身,才能更客观地评估这些额外功能的实际价值。
Linux系统的登录管理并不复杂,以who查询当下,以w观察行为,以last追踪历史,再配合ss验证链路,即可完整掌握服务器上每一场登录会话的全貌,管理者需要明白:查看在线用户只是手段,真正的目标是保证每个账号都在可信的掌控范围内,把这些命令用熟练,比任何花哨的监控面板都更踏实。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/717026.html





