首頁 > linux教程 > Linux用戶和用戶組管理 閱讀:0更新時間:2020-03-28 00:59:21

Linux whoami和who am i命令用法和區別

whoami 命令和 who am i 命令是不同的 2 個命令,前者用來打印當前執行操作的用戶名,后者則用來打印登陸當前 linux 系統的用戶名。

為了能夠更好地區分這 2 個命令的功能,給大家舉個例子,我們首先使用用戶名為“Cyuyan”登陸 Linux 系統,然后執行如下命令:

[Cyuyan@localhost ~]$ whoami
Cyuyan
[Cyuyan@localhost ~]$ who am i
Cyuyan    pts/0    2017-10-09 15:30 (:0.0)

在此基礎上,使用 su 命令切換到 root 用戶下,再執行一遍上面的命令:

[Cyuyan@localhost ~] su - root
[root@localhost ~]$ whoami
root
[root@localhost ~]$ who am i
Cyuyan    pts/0    2017-10-09 15:30 (:0.0)

看到了嗎?在未切換用戶身份之前,whoami 和 who am i 命令的輸出是一樣的,但使用 su 命令切換用戶身份后,使用 whoami 命令打印的是切換后的用戶名,而 who am i 命令打印的仍舊是登陸系統時所用的用戶名。

執行 whoami 命令,等同于執行 id -un 命令;執行 who am i 命令,等同于執行 who -m 命令。

也就是說,使用 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 來確認。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

優秀教程

国产亚洲欧美日韩