服务器查看登录用户
查看当前登录服务器用户的核心方法是使用终端命令:who、w、finger、last 以及检查系统日志 /var/log/secure (Linux) 或 /var/log/auth.log (Linux) 或安全事件日志 (Windows)。

核心命令:实时查看当前活跃用户
-
who命令- 功能: 最简洁地列出当前登录系统的用户会话。
- 输出示例:
root pts/0 2026-06-15 09:30 (192.168.1.100) admin pts/1 2026-06-15 10:15 (203.0.113.5) - 关键信息: 用户名、登录终端类型(
tty物理终端/pts伪终端)、登录时间、来源IP地址(如有)。 - 常用选项:
who -b:显示系统最后一次启动时间。who -r:显示当前运行级别。
-
w命令- 功能:
who命令的增强版,提供更丰富的实时信息,是运维人员首选。 - 输出示例:
09:45:03 up 2 days, 5:32, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.100 09:30 5.00s 0.05s 0.00s top admin pts/1 203.0.113.5 10:15 15:39 0.02s 0.02s -bash - 关键信息: 系统运行时间、负载、用户数;每个用户的用户名、终端、来源IP、登录时间、空闲时间、总CPU时间、当前进程CPU时间以及他们正在执行的命令 (
WHAT)。WHAT列对识别异常活动至关重要。
- 功能:
-
finger命令- 功能: 提供更详细的用户信息,通常需要安装(
yum install finger或apt install finger)。 - 输出示例:
Login: root Name: root Directory: /root Shell: /bin/bash On since Sat Jun 15 09:30 (CST) on pts/0 from 192.168.1.100 5 seconds idle New mail received Sat Jun 15 09:40 2026 (CST) Unread since Sat Jun 15 09:00 2026 (CST) No Plan. - 关键信息: 用户名、全名、主目录、使用的Shell、登录详情(时间、终端、来源)、空闲时间、邮件状态、用户计划文件(
~/.plan),适合需要了解用户背景信息时使用。
- 功能: 提供更详细的用户信息,通常需要安装(
历史查询与审计:追踪登录足迹

-
last命令- 功能: 读取
/var/log/wtmp文件,查看系统所有用户的登录/注销历史记录(包括重启事件)。 - 输出示例:
root pts/0 192.168.1.100 Sat Jun 15 09:30 still logged in admin pts/1 203.0.113.5 Sat Jun 15 10:15 still logged in reboot system boot 5.4.0-150-generic Sat Jun 15 09:28 still running (系统启动记录) - 关键信息: 用户名、登录终端/来源、来源IP地址、登录时间、注销时间(或
still logged in/down/crash)、会话持续时间。是安全审计追踪可疑登录的核心工具。 - 常用选项:
last -n 10:仅显示最近10条记录。last username:查看特定用户记录。last -i:将IP地址显示为主机名(如果配置了反向解析)。lastb:查看失败的登录尝试(读取/var/log/btmp,通常需要sudo权限)。
- 功能: 读取
-
系统认证日志
- 位置 (Linux):
/var/log/secure(RHEL/CentOS/Rocky/AlmaLinux)/var/log/auth.log(Debian/Ubuntu)
- 位置 (Windows): 事件查看器 -> Windows 日志 -> 安全,筛选事件ID 4624 (成功登录)、4625 (失败登录)、4634/4647 (注销)。
- 功能: 提供最详细、最原始的登录/登出、认证成功/失败、sudo提权等安全事件记录,包含时间戳、用户名、源IP、使用的服务/协议(如SSH)、进程ID等,是深度安全调查的基石。
- 查看方法:
sudo tail -f /var/log/secure(实时监控RHEL系)sudo grep "Accepted password" /var/log/auth.log(查找Ubuntu成功登录)sudo journalctl -u sshd(使用systemd的系统的SSH日志)
- 位置 (Linux):
进阶监控与安全实践:超越基础命令
-
实时监控与告警:
- 使用
watch命令:watch -n 5 'w'每5秒刷新一次w的输出。 - 部署集中式日志系统 (ELK Stack, Graylog, Splunk):将多台服务器的认证日志集中收集、索引、分析和告警,实现跨服务器用户登录行为监控。
- 配置实时告警:利用工具如
swatch、logwatch或 SIEM 系统,对关键事件(如root登录、非工作时间登录、多次失败登录、特定IP登录)触发邮件或IM告警。
- 使用
-
增强安全性的关键配置:

- SSH 加固:
- 禁用 root 直接登录:
/etc/ssh/sshd_config中设置PermitRootLogin no,强制使用普通用户登录后su/sudo。 - 使用 SSH 密钥认证: 完全禁用密码登录 (
PasswordAuthentication no),杜绝暴力破解。 - 限制用户/组登录: 使用
AllowUsers user1 user2或AllowGroups admin。 - 更改默认 SSH 端口:
Port 2222(避免自动化扫描)。 - 使用 Fail2Ban: 自动屏蔽短时间内多次登录失败的 IP 地址。
- 禁用 root 直接登录:
- 审计策略:
- 确保
/var/log/wtmp、/var/log/btmp、/var/log/secure/auth.log得到妥善轮转和保留足够长时间(符合合规要求)。 - 配置
auditd(Linux Audit Daemon) 进行更细粒度的系统调用审计(如记录特定文件访问、命令执行)。
- 确保
- 最小权限原则: 严格限制用户权限,仅授予完成工作所必需的最小权限,大量使用
sudo并精细控制sudoers文件。
- SSH 加固:
独立见解:登录监控的价值远超“看看谁在线”
查看登录用户不仅是日常运维操作,更是服务器安全态势感知的第一道防线,持续监控登录信息能让你:
- 即时发现入侵迹象: 异常时间登录、未知IP登录、来源国家异常、用户执行可疑命令 (
w的WHAT列)、大量失败登录 (lastb)。 - 追踪内部操作: 在故障排除或安全事件调查时,明确特定时间点谁在系统上做了什么。
- 满足合规要求: 严格的审计规范(如等保、PCI DSS、GDPR)要求记录并定期审查用户登录活动。
- 优化资源管理: 识别长时间空闲会话或僵尸进程,及时清理释放资源,自动化脚本定期清理
Inactive或Idle过长的会话可提升效率。
熟练掌握 w, last, 日志分析是服务器管理员的必备技能。将被动查看升级为主动监控和防御体系才是专业运维与安全管理的分水岭,通过加固SSH、部署集中日志分析、配置实时告警并遵循最小权限原则,你能显著提升服务器的安全基线,将用户登录信息转化为强大的安全情报来源。
你在日常运维中,最常用哪个命令查看用户登录?是否有遇到过通过登录监控发现安全威胁的实际案例?欢迎分享你的经验和最佳实践!
原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/26093.html