Linux用户监控命令详解:w、who、lastlog与last

发布时间:2026/7/17 22:37:49
Linux用户监控命令详解:w、who、lastlog与last 1. 系统用户信息查看的必要性与应用场景在日常系统管理和运维工作中了解当前登录用户信息是一项基础但至关重要的任务。想象一下这样的场景作为服务器管理员你突然发现系统负载异常升高或者安全审计时发现可疑活动第一反应就是确认现在谁在系统上他们在做什么这正是用户信息查看命令的价值所在。这些命令不仅能显示登录用户列表还能提供丰富的上下文信息用户来源IP判断是否来自可信网络登录时间识别异常时间段的会话当前活动发现可疑进程终端类型区分SSH会话与本地控制台在安全事件响应中这些信息往往是调查的第一步。比如去年我们团队处理过一起入侵事件攻击者通过暴力破解获得了一个低权限账户的访问权。正是通过who命令发现的异常登录时间凌晨3点和异常来源IP境外地址让我们快速锁定了入侵点。2. w命令最全面的用户活动监控2.1 基础使用与输出解读直接执行w命令会显示如下信息10:30:45 up 15 days, 3:12, 3 users, load average: 0.08, 0.03, 0.01 USER TTY FROM LOGIN IDLE JCPU PCPU WHAT root pts/0 192.168.1.100 09:15 5.00s 0.05s 0.00s w alice pts/1 203.0.113.45 10:20 1:05 0.10s 0.10s -bash bob tty1 08:30 15:30m 0.20s 0.15s top关键字段解析USER登录用户名注意root用户的异常登录TTY终端类型pts表示远程连接tty表示本地终端FROM来源IP重要安全指标WHAT当前进程发现异常命令如挖矿软件2.2 高级用法与安全实践w -h可以去掉表头直接输出数据适合脚本处理# 监控异常登录的脚本示例 w -h | awk $3 ~ /^[0-9]/ $3 ! 192.168.1.* {print Alert: Foreign IP,$3,user,$1}重要提示在生产环境中建议定期归档/var/log/wtmp文件存储历史登录记录否则可能因日志轮转丢失关键证据。可以使用logrotate配置每月归档/var/log/wtmp { monthly rotate 12 missingok notifempty }3. who命令简洁高效的登录会话查看3.1 基础功能对比与w命令相比who的输出更为简洁root pts/0 2023-03-15 09:15 (192.168.1.100) alice pts/1 2023-03-15 10:20 (203.0.113.45) bob tty1 2023-03-15 08:30关键差异点不显示用户当前活动WHAT字段时间格式更规范适合日志分析包含系统启动时间who -b3.2 实用技巧会话管理与强制注销发现可疑会话时可以通过以下步骤处理获取终端设备号who -u # 输出中的pts/N就是终端标识查看该终端进程ps -ft pts/1强制终止会话pkill -9 -t pts/1经验之谈在云服务器环境中经常遇到SSH会话异常断开导致进程挂起的情况。此时可以用who -u查看僵死会话标记为dead然后用skill -KILL -t pts/N彻底清理。4. lastlog与last历史登录记录审计4.1 lastlog用户最后登录报告lastlog命令显示所有用户的最后登录时间Username Port From Latest root pts/0 192.168.1.100 Wed Mar 15 09:15:01 0800 2023 alice pts/1 203.0.113.45 Wed Mar 15 10:20:33 0800 2023 bob tty1 Wed Mar 15 08:30:15 0800 2023 nobody **Never logged in**安全审计技巧检查Never logged in的账户是否应该存在关注长时间未登录的活跃账户可能被入侵结合lastlog -u 用户名查看特定用户4.2 last详细的登录/注销历史last命令显示完整的登录历史root pts/0 192.168.1.100 Wed Mar 15 09:15 still logged in alice pts/1 203.0.113.45 Wed Mar 15 10:20 - 10:25 (00:05) bob tty1 Wed Mar 15 08:30 still logged in reboot system boot 5.4.0-135-generi Wed Mar 15 08:29 still running实用参数last -n 5显示最近5条记录last -i始终显示IP地址避免DNS查询last -x包含关机/重启记录5. 进阶技巧与特殊场景处理5.1 用户信息的安全处理当需要打包系统文件时如使用tar用户信息可能带来安全隐患# 错误的打包方式会保留原始用户权限 tar czf backup.tar.gz /etc/ # 安全做法强制使用root权限 tar czf backup.tar.gz --ownerroot --grouproot /etc/5.2 虚拟环境下的用户会话当遇到虚拟网卡未启用等网络问题时用户会话可能异常检查虚拟网卡状态ip link show | grep virbr重新加载模块modprobe tun重启网络服务systemctl restart libvirtd5.3 命令行显示优化对于Ubuntu等系统命令行过长的问题可以通过修改PS1变量优化# 编辑~/.bashrc export PS1\u\h:\w\$ # 立即生效 source ~/.bashrc6. 实战案例综合运用命令排查入侵去年我们处理的一个真实案例通过w发现异常CPU使用率who显示有来自巴西IP的root登录lastlog确认该账户平时只在本地登录last发现攻击者是通过凌晨3点的SSH爆破进入用ps -ft pts/3发现挖矿进程立即pkill -9 -t pts/3终止会话分析/var/log/auth.log确认漏洞点关键教训定期检查lastlog中的异常登录为root账户设置SSH密钥认证Fail2Ban监控/var/log/wtmp的完整性防止黑客删除痕迹掌握这五种方法后你就能像专业运维人员一样对系统用户活动了如指掌。记住这些命令不仅是工具更是构建系统安全的第一道防线。建议每天至少执行一次快速检查把安全监控变成日常习惯。