Linux whoami和who am i命令用法与区别
发布时间:2023-06-27 17:21:58 所属栏目:Linux 来源:
导读:whoami 命令和 who am i 命令是不同的 2 个命令,前者用来打印当前执行操作的用户名,后者则用来打印登陆当前 Linux 系统的用户名。
为了能够更好地区分这 2 个命令的功能,给大家举个例子,我们首先使用用户名为
为了能够更好地区分这 2 个命令的功能,给大家举个例子,我们首先使用用户名为
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 来确认。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐