关注公众号 “融码一生”,领取全套 PDF / 电子书
whoami
:查看当前系统当前账号的用户名。等同于id -un
命令。可通过cat /etc/passwd
查看系统用户信息。- 由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以
su
命令切换到 root 身份。这时就可以使用 whoami 来查看当前用户的身份。 who am i
:打印登陆当前 Linux 系统的用户名(第一次登录终端的用户名);等同于who -m
命令。- who 命令:查看当前所有登录系统的用户信息。常用选项:
选项 | 含义 |
-m 或 am I | 只显示运行 who 命令的用户名、登录终端和登录时间 |
-q 或 --count | 只显示用户的登录账号和登录用户的数量 |
-u 或 --heading | 显示列标题 |
whoami
:<<!
jyhuang2
!
who am i
:<<!
root pts/2 2022-07-27 09:43 (117.136.46.222)
!
su - root
:<<!
Password:
Last login: Wed Jul 27 10:02:02 CST 2022 on pts/2
!
whoami
:<<!
root
!
who am i
:<<!
jyhuang2 pts/4 2022-07-27 10:50 (117.136.46.222)
!
- 使用 su 或 sudo 命令切换用户身份,骗得过 whoami,但骗不过 who am i。要解释这背后的运行机制,需搞清楚什么是实际用户(UID)和有效用户(EUID,即 Effective UID)。
-
- 实际用户:登陆 Linux 系统时所使用的用户;在整个登陆会话过程中,实际用户不会发生变化
- 有效用户:当前执行操作的用户,真正决定权限高低的用户,能利用 su 或 sudo 命令进行任意切换的
- 一般实际用户和有效用户相同;出现用户身份切换时它们会出现差异。
whoami
和who am i
通常应用在哪些场景中?
-
- 对那些经常需要切换用户的系统管理员来说,经常需要明确当前使用的是什么身份
- 对于某些 shell 脚本,或需要特别的用户才能执行,这时就需要利用 whoami 命令来搞清楚执行它的用户是谁
- 还有一些 shell 脚本,一定要某个特别用户才能执行,即便使用 su 或 sudo 命令切换到此身份都不行,此时就需要利用 who am i 来确认
关注公众号 “融码一生”,领取全套 PDF / 电子书