Linux中的who系列命令who/whoami/who am i

    在Linux中who系列命令存在who/whoami/who am i。

    首先我以普通用戶guixian001登陸系統。然後執行命令分別執行命令whoami/who am i/who。截圖如下:

    wKioL1VRZYrjh8jCAACd9ikK2sU994.jpg

    然後我們使用su命令切換到root用戶再執行以上三個命令。

    wKioL1VRZjujNeOxAACn1pFaJTU347.jpg

    看出區別了嗎?使用whoami命令顯示的是當前“操作用戶”的用戶名。而who am i顯示的是“登錄用戶”的用戶名。要解釋這個現象需要引入linux中的兩個概念——實際用戶(UID,即user id)和有效用戶(EUID,即effective user id)。

    實際用戶是指用戶登錄時所使用的用戶,所以在整個登錄會話中,實際用戶是不會變化的。有效用戶是指當前執行操作的用戶,這個是能夠利用su和sudo命令進行任意切換的。一般情況下,實際用戶和有效用戶是一樣的,只有發生用戶身份切換的時候,會發生差異。所以who am i顯示的是實際用戶的用戶名,即用戶登陸時候的用戶ID,相當於who -m,而whoami顯示的是有效用戶的ID即EUID。

    References:

    《Linux就是這個範兒》

    《who am i》-linux命令五分鐘系列之十六

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章