Shell/Bash在线运行

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
用户最新保存的代码
查看更多
显示目录

whoami 命令与 who am i 命令-打印用户名



搭载国产梦丘操作系统,支持安装软件,在线编程可视化开发软件,无需配置开发环境

点击购买 梦丘固件

whoami 命令与 who am i 命令

whoami 命令和 who am i 命令是不同的 2 个命令,

whoami 命令用来打印当前执行操作的用户名

who am i 命令用来打印登陆当前 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 或者 sudo 命令切换用户身份,骗得过 whoami,但骗不过 who am i。

要解释这背后的运行机制,需要搞清楚什么是实际用户(UID)和有效用户(EUID,即 Effective UID)。

实际用户:指的是登陆 Linux 系统时所使用的用户,因此在整个登陆会话过程中,实际用户是不会发生变化的;

有效用户,指的是当前执行操作的用户,也就是说真正决定权限高低的用户,这个是能够利用 su 或者 sudo 命令进行任意切换的。

由JSRUN为你提供的Shell/Bash在线运行、在线编译工具
        JSRUN提供的Shell/Bash 在线运行,Shell/Bash 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。