Linux系统中如何查看登录用户信息?
常见问题
Linux系统中如何查看登录用户信息?
2025-12-23 04:34
Linux系统查看登录用户信息的全面指南:8种命令详解与实战技巧
一、为什么需要监控Linux登录用户?
在Linux服务器管理中,实时掌握登录用户信息是系统管理员必备的安全运维技能。无论是排查异常登录、进行资源审计,还是维护多用户环境,了解谁在何时通过何种方式登录系统都至关重要。本文将深入解析8种常用命令,助您全面掌握用户会话监控技术。
二、核心命令深度解析
1. who命令:基础会话查看器
$ who
root pts/0 2024-01-15 09:30 (192.168.1.100)
alice tty2 2024-01-15 08:15 (:0)
bob pts/1 2024-01-15 10:22 (203.0.113.5)
输出字段详解:用户名、终端类型(pts为伪终端,tty为物理终端)、登录时间、来源IP(本地登录显示:0)。配合who -u可查看空闲时间,who -b显示系统启动时间。
2. w命令:增强型监控工具
$ w
10:30:15 up 2 days, 3:45, 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:30 1:30 0.05s 0.01s vim /etc/nginx/nginx.conf
alice tty2 :0 08:15 2:15 0.20s 0.01s bash
w命令不仅显示登录信息,还提供:系统运行时间、负载平均值、用户空闲时间、进程CPU占用及当前执行命令。是实时诊断的首选工具。
3. last命令:历史登录审计
$ last -n 5
root pts/0 192.168.1.100 Mon Jan 15 09:30 still logged in
alice tty2 :0 Mon Jan 15 08:15 still logged in
bob pts/1 203.0.113.5 Mon Jan 15 10:22 - 10:25 (00:03)
reboot system boot 5.4.0-91-generic Mon Jan 15 08:00 still running
该命令读取/var/log/wtmp文件,显示所有登录/重启记录。关键参数:last -n X限制行数,last -x显示关机事件,last username过滤特定用户。
4. users与whoami:快速身份验证
users命令单行显示当前登录用户,适合脚本调用:
$ users
root alice bob
whoami返回当前执行命令的用户身份,在sudo操作后验证权限时特别有用。
5. finger命令:用户详情查询
$ finger alice
Login: alice Name: Alice Johnson
Directory: /home/alice Shell: /bin/bash
On since Mon Jan 15 08:15 (CST) on tty2
No mail.
Plan:
Working on project documentation.
需安装finger包,可显示用户家目录、登录shell、邮箱状态及.plan文件内容。
6. loginctl:systemd会话管理
$ loginctl list-sessions
SESSION UID USER SEAT TTY
c1 1000 alice seat0 tty2
c2 0 root seat1 pts/0
适用于使用systemd的现代Linux发行版,可管理用户会话生命周期。
三、高级监控技巧
1. 实时监控脚本示例
#!/bin/bash
# 每10秒检测一次异常登录
while true; do
clear
echo "=== 用户登录监控 $(date) ==="
who | grep -v "192.168.1.*" | tee -a /var/log/foreign_login.log
sleep 10
done
2. 综合信息仪表板
$ watch -n 5 'echo "当前用户:"; users; echo "\n详细信息:"; w | tail -n +3'
3. 安全审计配置
在/etc/ssh/sshd_config中添加:
PrintLastLog yes
LoginGraceTime 60
MaxAuthTries 3
启用auditd服务记录认证事件:auditctl -w /var/log/auth.log -p war
四、故障排查场景应用
- 场景1:服务器响应缓慢
使用w查看负载和用户进程,last -n 20检查近期登录高峰
- 场景2:可疑登录警报
组合命令:last | grep "192.168.1.100" | head -20追踪特定IP登录历史
- 场景3:用户权限问题
通过who -u确认会话状态,loginctl show-user username检查会话限制
五、日志文件关联分析
命令 数据源 保存期限
last /var/log/wtmp 按月轮替
lastb /var/log/btmp 失败登录记录
lastlog /var/log/lastlog 所有用户最后登录
实时日志 /var/log/auth.log 实时认证事件
建议定期使用lastlog -u username检查用户最后登录时间,配合grep "Failed password" /var/log/auth.log分析暴力破解尝试。
六、最佳实践建议
- 生产环境配置
auditd进行完整会话审计
- 使用
tmux或screen管理长期会话,避免直接终端登录
- 设置
/etc/motd登录提示,声明监控政策
- 定期分析登录模式:
last | awk '{print $3}' | sort | uniq -c | sort -rn
- 关键服务器配置双因素认证,限制root直接登录
标签:
- Linux user management
- login monitoring
- system administration
- 莱卡云
