上一篇
Linux中谁在登录?
- Linux
- 2025-06-11
- 3249
在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,兼容主流发行版。