
Linux `whoami` 命令深度解析与高阶应用指南
一、核心功能解析
1. 基本作用
$ whoami
ubuntu
- 核心功能:显示当前有效用户身份(Effective User ID)
- 执行原理:调用
geteuid()
系统调用,返回用户ID对应的用户名
- 执行权限:所有用户均可执行,无需特殊权限
2. 与相关命令对比
命令 |
输出内容 |
数据来源 |
whoami |
当前有效用户名 |
/proc/self/status |
who am i |
初始登录用户名及终端信息 |
/var/run/utmp |
logname |
原始登录用户名 |
环境变量LOGNAME |
id -un |
当前有效用户名 |
同whoami |
二、技术实现细节
1. 系统调用分析
#include <unistd.h>
uid_t geteuid(void);
char *getpwuid(uid_t uid);
2. 执行流程解析
- 调用
geteuid()
获取有效用户ID
- 读取
/etc/passwd
文件匹配用户名
- 返回第一个匹配到的用户名
3. 环境变量影响
临时修改环境变量测试(不会实际改变权限)
$ USER=root whoami
ubuntu