上一篇
Linux中谁在登录?
- Linux
- 2025-06-11
- 2788
在Linux中查看当前用户,可运行命令
whoami或
id -un,也可使用
echo $USER直接显示用户名。
方法1:使用 whoami 命令(最简方式)
whoami
输出示例
john
特点
- 直接返回当前用户名,无额外信息
- 适用于脚本中快速获取用户名
- 系统预装,无需额外安装
方法2:使用 id 命令(查看详细信息)
id
输出示例
uid=1000(john) gid=1000(john) groups=1000(john),4(adm),24(cdrom)
解析

uid=1000(john):用户ID及用户名gid:主组IDgroups:所属所有用户组
适用场景
需同时检查用户权限和组关系时使用
方法3:查看 $USER 环境变量
echo $USER
输出示例
john
注意
- 环境变量可能被改动(极少数反面场景)
- 通常与
whoami结果一致,建议交叉验证
方法4:使用 w 或 who 命令(多用户监控)
w
输出示例

10:15:03 up 2 days, 3:22, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT john tty2 :0 Mon09 5:23m 0.02s 0.00s /usr/bin/startx
优势
- 显示所有登录用户及活动进程
- 精准定位终端来源(
tty2)和登录时间
方法5:检查 /etc 相关文件(高级审计)
查看当前登录用户记录
cat /var/run/utmp # 需用工具解析(如 `utmpdump`)
查看历史登录用户
last -1 # 最近一次登录记录
输出示例
john tty2 :0 Mon Sep 18 09:15 still logged in
适用场景

- 安全审计
- 追踪异常登录行为
安全注意事项
- 交叉验证原则
关键操作前用两种命令验证(如whoami+id),避免环境变量欺骗。 - 特权用户识别
使用sudo -i切换后,whoami显示root,但echo $SUDO_USER可查原用户。 - 环境变量风险
若echo $USER与whoami结果不一致,可能遭遇反面改动。
总结建议
| 场景 | 推荐命令 |
|---|---|
| 快速查看用户名 | whoami |
| 检查用户组权限 | id |
| 监控多用户活动 | w |
| 审计历史登录记录 | last |
引用说明基于Linux核心文档(Linux man-pages)及Unix权限管理标准(IEEE Std 1003.1),命令测试环境为Ubuntu 22.04 LTS与CentOS 9,兼容主流发行版。
