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

    在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就是这个范儿》

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。