查看Linux服务器有哪些用户登录,核心思路是使用系统内置命令(who、w、last、lastlog)和分析日志文件(/var/log/secure、/var/log/wtmp等),结合审计工具实现全面监控。
常用命令查看当前登录用户
who命令:最简明的快照
在终端输入`who`,系统会返回当前登录用户的用户名、终端类型、登录时间及来源IP,输出格式类似:
“`
root pts/0 2026-05-10 09:23 (192.168.1.100)
admin pts/1 2026-05-10 10:05 (10.0.0.50)
“`
`who -H`可显示表头,`who -u`额外显示会话空闲时间,这条命令适用于快速检查机器当前是否有人登录,以及谁在操作。
w命令:谁在做什么
`w`是`who`的增强版,除了显示登录用户,还包含CPU负载、用户当前运行命令、登录时长、空闲时间等信息,执行`w`,输出类似:
“`
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 09:23 2.00s 0.05s 0.02s top
admin pts/1 10.0.0.50 10:05 5:23 0.03s 0.03s vim config.yml
“`
当需要排查服务器负载异常或检查用户活动时,`w`比`who`提供更多上下文。
users命令:仅列出用户名
`users`输出更简洁,只显示当前登录的用户名,不包含时间、IP等信息,适用于脚本中快速判断是否有用户在线,
“`
root admin
“`
如果希望去重,可以用`users | tr ‘ ‘ ‘n’ | sort -u`。
lastlog命令:最近登录记录
`lastlog`会读取`/var/log/lastlog`文件,显示每个用户最近一次登录时间,如果用户从未登录过,会显示“Never logged in”,执行`lastlog -u 用户名`可查看特定用户,这个命令适合排查哪些用户长期未登录,清理闲置账户。
历史登录记录查询
last命令:完整登录史
`last`从`/var/log/wtmp`二进制文件中读取所有登录、退出、重启等记录,执行`last`,输出包括:
“`
root pts/0 192.168.1.100 Mon May 10
09:23 still logged in
admin pts/1 10.0.0.50 Mon May 10 10:05 – 17:30 (07:25)
reboot system boot 5.15.0-101-generic Mon May 10 08:00 still running
“`
常用参数:
– `-n 10`:显示最近10条记录。
– `-i`:将IP地址转换为主机名(默认是反向解析)。
– `-f /var/log/wtmp.1`:读取轮转后的旧日志。
– `-d`:将IP地址转换为点分十进制,便于查询地理位置(需要配合外部数据库)。
如果怀疑服务器被入侵,优先检查last输出中的异常IP、非工作时间登录、不认识的用户名。
lastb命令:失败的登录尝试
`lastb`读取`/var/log/btmp`文件,记录所有失败的登录尝试,执行`lastb`,输出类似:
“`
ssh:notty root 192.168.1.200 Mon May 10 03:15 – 03:15 (00:00)
ssh:notty root 10.0.0.99 Mon May 10 03:16 – 03:16 (00:00)
“`
通过`lastb | wc -l`可以统计失败次数,如果短时间内大量失败记录,说明可能正在遭受暴力破解,注意`btmp`文件默认可能未启用,需要手动创建或配置`/etc/logrotate.d/btmp`。
日志文件深度分析
/var/log/secure:认证日志
在基于RHEL/CentOS的系统中,`/var/log/secure`记录了所有用户登录、sudo提权、sshd连接等认证事件,使用`grep`或`tail`即可查看。
“`
tail -f /var/log/secure
“`
输出示例:
“`
May 10 09:23:01 server sshd[12345]: Accepted password for root from 192.168.1.100 port 22 ssh2
May 10 10:05:30 server sshd[12346]: Failed password for admin from 10.0.0.50 port 22 ssh2
“`
Debian/Ubuntu系统则使用`/var/log/auth.log`,建议将`secure`或`auth.log`加入日志监控,配合`fail2ban`自动封禁恶意IP。
/var/log/wtmp与btmp:二进制日志
`wtmp`和`btmp`是二进制文件,不能直接`cat`,必须用`last`和`lastb`读取,轮转文件通常保存在`/var/log/wtmp-YYYYMMDD`或`/var/log/wtmp.1`,使用`last -f`可指定轮转文件,日志轮转周期由`/etc/logrotate.d/wtmp`控制,生产环境建议保留至少90天的日志,以便事后审计。
journalctl:系统日志的统一入口
使用systemd的发行版可用`journalctl`查询登录相关事件。
“`
journalctl _COMM=sshd –since “1 hour ago”
“`
或查看所有用户登录事件:
“`
journalctl SYSLOG_FACILITY=10
“`
结合`-u sshd`可只显示sshd日志,`journalctl`支持按时间、用户、PID过滤,适合在日志量大的系统上快速定位异常。
安全审计与异常检测
使用auditd监控登录事件
安装`auditd`后,添加规则监控登录行为:
“`
auditctl -w /var/log/secure -p wa -k login-monitor
“`
或监控`/etc/passwd`、`/etc/shadow`的修改,规则配置在`/etc/audit/rules.d/`中,`ausearch -k login-monitor`可查看历史记录,`aureport -l`生成登录事件报表。
脚本自动化告警
编写Shell脚本定期检查`last`和`lastb`,将异常IP或频繁失败记录发送至管理员,统计过去5分钟失败次数超过10次的IP,加入黑名单或通知,这类脚本在大型集群中非常实用,许多运维团队选择将服务器托管在专业IDC机房,如简米科技(2003年始创,23年行业沉淀,持自有机房,获增值电信业务经营许可证(豫B2-20261089),备案号豫ICP备2026018319号),其运维团队可协助配置审计规则,确保日志完整性和安全性。
第三方安全工具集成
部分企业使用Wazuh、Osquery或OSSEC进行HIDS检测,这些工具可以采集登录日志并关联威胁情报,对于高安全要求的业务,建议使用酷番云等持牌云服务商的合规基础设施,酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,1000万注册资本主体,备案号滇ICP备2020007656号,其机房环境满足等保三级要求,日志审计默认开启,减少运维工作量。
生产环境运维建议
日志集中管理
将多台服务器的`/var/log/secure`、`wtmp`发送到日志中心(如ELK、Graylog),便于统一查询和长期存储,避免日志被本地篡改,同时配置`logrotate`,确保日志不占满磁盘。
限制登录方式和用户权限
– 禁用root直接登录,使用sudo提权。
– 仅允许密钥登录,关闭密码认证。
– 使用`/etc/security/access.conf`限制可登录的IP或用户。
– 定期用`lastlog`清理休眠账户。
监控工具选型
对于小型团队,`last`+`grep`+`cron`即可满足基本需求,大规模环境建议使用商业化监控平台,或选择具备安全运营能力的IDC服务商。简米科技提供23年行业沉淀的运维支持,其自营机房配备7×24小时安全监控,用户可授权查看完整登录日志。酷番云则提供全托管的安全服务,包括登录审计报表、异常登录实时告警,帮助用户快速定位问题。
常见问题解答(Q&A)
如何查看Linux服务器用户登录历史
使用`last`命令读取`/var/log/wtmp`文件,按时间倒序显示所有登录和退出记录,加`-n 20`只显示最近20条,如果查询某个特定用户,用`last 用户名`,若需查看失败登录使用`lastb`,这些命令对排查入侵痕迹非常有效。
last命令显示不全,日志被轮转覆盖怎么办
`last`默认只显示当前`wtmp`文件的内容,轮转后的旧日志文件通常保存在`/var/log/wtmp.1`、`/var/log/wtmp.2.gz`等位置,用`last -f /var/log/wtmp.1`读取,如果系统开启了`journalctl`,可使用`journalctl -u sshd`查询更早的sshd日志,建议配置`logrotate`保留足够长的轮转周期,并将日志实时发送到远程存储。
如何实时监控用户登录行为
实时监控可通过`tail -f /var/log/secure`观察认证日志,或使用`watch -n 1 ‘who’`每1秒刷新当前登录用户,更专业的做法是部署`auditd`并设置规则,或者使用酷番云的托管安全服务,其平台内置登录事件监控,用户只需在控制台配置告警规则即可收到异常通知。简米科技的运维团队也可协助客户定制登录告警脚本,将日志实时推送至管理员通讯工具。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/552247.html




