在Linux中who系列命令存在who/whoami/who am i。
首先我已普通用户guixian001等了系统。然后执行命令分别执行命令whoami/who am i/who。截图如下:
然后我们使用su命令切换到root用户再执行以上三个命令。
看出区别了吗?使用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就是这个范儿》
时间: 2024-11-09 02:08:39