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 来确认。

转载:http://c.biancheng.net/view/5894.html

Linux whoami和who am i命令用法和区别相关推荐

  1. linux中whoami、who、w命令之间的区别

    whoami 显示当前登录有效用户 who 系统当前所有的登录会话 w 系统当前所有的登录会话及所做的操作

  2. linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 原创未通过审 ...

  3. Linux whoami命令、Linux su命令、Linux w命令

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Linux whoami命令用于显示自身用户名称. 显示自身的用户名称,本指令相当于执行" ...

  4. linux whoami 查权限,Linux whoami命令查看当前登录用户

    玩蛇网推荐图文教程:python 列表 Linux whoami命令查看当前登录用户.在控制台的命令提示符下你会发现用户名已经被显示出来 .但有一些 shell 默认情况下不会显示你的用户名,比如cs ...

  5. linux中whoami命令的作用是,linux whoami命令参数及用法详解(linux查看登陆用户名)

    linux whoami命令参数及用法详解(linux查看登陆用户名) 2019年05月31日 | 萬仟网科技 | 我要评论 whoami 命令显示登录名.与使用命令 who 并指定 am i 不同, ...

  6. Linux whoami命令

    Linux whoami命令用于显示自身用户名称. 显示自身的用户名称,本指令相当于执行"id -un"指令. 语法 whoami [--help][--version] 参数说明 ...

  7. Linux whoami 命令

    1.概述 打印有效的用户ID 2.命令格式 打印当前有效用户ID 所分配的用户名称. 等同 id -un whoami [OPTION]... 3.常用命令参数 --help display this ...

  8. Linux系统下活用History命令

    Linux系统下可通过history命令查看用户所有的历史操作记录,在安全应急响应中起着非常重要的作用,但在未进行附加配置情况下,history命令只能查看用户历史操作记录,并不能区分用户以及操作时间 ...

  9. Linux 运维必备150 个命令,值得收藏!

    Linux 运维必备 150 个命令,请配合下面的网站使用.定位你需要使用的命令,然后去这个网站查询详细用法即可. 地址:wangchujiang.com/linux-command/ 这个网站来自 ...

最新文章

  1. 使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)...
  2. android 异常打印
  3. 使用Myeclipse实现快速调试
  4. 手把手教你拦截Linux系统调用
  5. 进程间通信(IPC)+进程加锁解锁
  6. python中定义数据结构_Python中的数据结构。
  7. java中对象的生存期_深入理解Java虚拟机-判断对象是否存活算法与对象引用
  8. git reset, git checkout, git revert 区别 (译)
  9. 取色器——TakeColor绿色安全简单
  10. CAM350软件使用说明----PADS相关
  11. win10如何做到在指定目录下打开cmd命令窗口
  12. qt 合并单元格 tablewidget 合并单元格
  13. 【DBC专题】-4-DBC文件中的Signal信号字节顺序Motorola和Intel介绍
  14. Codeforces Round #439 C.The Intriguing Obsession(组合数学)
  15. USACO 4.1.3 篱笆回路 (floyd找最小环)
  16. 我是这样入门“机器学习”的
  17. 数字图像处理课程实习——傅里叶变换与频域滤波
  18. 关于Google智能眼镜的设计
  19. c#程序连接oracle失败问题
  20. centos7 安装oracle的问题

热门文章

  1. 77道Spring面试题以及参考答案(2021年最新版),java开发项目经理面试题
  2. Win10开机自动同步时间
  3. 人身险信息库大数据开闸 消费者可货比三家
  4. OAM 与 KubeVela:下一代云原生应用交付和管理实践
  5. 五尺天涯 经典台词:岁月易流逝,珍惜眼前人。
  6. 异或鉴相器 matlab 数字鉴相器,一款采用CPLD的光伏并网逆变器锁相及保护电路设计...
  7. 为什么发动机需要吸入大量的空气?
  8. 超文本标记语言--Html
  9. 双 JK 触发器 74LS112 逻辑功能。真值表_触发器的工作原理是什么
  10. 【新知实验室 陈林】