Linux 命令之who、who am i、whoami 的区别

在 Linux 中,我们知道通常查询用户信息的命令有 id、who、who am i、whoami。

那么,这几个用户信息的查询命令有什么区别?

我们用 man 命令查询一下四个命令,看一下帮助手册对他们的描述。

$ man id

NAME
            id - print real and effective user and groups
$ man who

NAME
            who - show who is logged on
            
# 同时,在 who 的帮助手册中,我们发现一下信息

DESCRIPTION
            (省略)
            -m      only hostname and user associated with stdin
            (省略)
            If  ARG1  ARG2  given, -m presumed: 'am i' or 'mom likes' are usual.

说明,who am i 仅显示请求执行该命令的登录用户的信息

$ man whoami

NAME
            whoami - print effective userid

在帮助手册的描述中,我们可以总结:

  • id 可以查询有效用户的 UID 和 GID、groups 信息
  • who 可以查询当前登录在系统上的登录用户的信息
  • who am i 等同于 who -m,只打印执行该命令的登录用户的信息
  • whoami 可以查询当前有效用户的名字

我们来看一下具体例子。

假设我以 root 用户身份登录,分别执行上述四个命令,则有:

$ id
uid=0(root) gid=0(root) groups=0(root)

$ who
root        tty1        2020-02-04 16:00
root        pts/0       2020-02-06 17:30

$ who am i
root        pts/0       2020-02-06 17:30

$ whoami
root

我们先不着急发现和总结它们之间的差别,再继续做另一个实验。

我们用 su 命令切换到另一个用户 test,并重复上述命令

$ su - test

$ id
uid=1001(test) gid=1002(test) groups=1002(test)

$ who
root        tty1        2020-02-04 16:00
root        pts/0       2020-02-06 17:30

$ who am i
root        pts/0       2020-02-06 17:30

$ whoami
test

结合前述对帮助手册的查询,以及对实验的观察,我们发现:

id 命令显示的是切换后的用户信息(有效用户信息);

who 命令仍然显示所有登录用户(所有登录用户信息);

who am i 命令仍然显示切换前的用户信息(执行命令的登录用户的信息);

whoami 命令显示的是切换后的用户信息(有效用户信息);

针对上述现象,我们需要解释几个问题:

1、为什么切换到 test 用户后,who 命令却没有 test 用户的相关信息?

答:在 Linux 中,以 su 命令切换用户后,并没有登录切换后的用户,而是在原来用户的进程中创建了子进程执行命令,所以 test 用户并没有登录

2、切换到 test 用户后,who am i 命令为什么仍然显示 root 的信息,而 whoami 却显示 test 用户的信息?

答:who am i 命令显示的是登录用户的信息,在这个案例中,登录用户仍然是 root,test 用户并没有登录;而切换身份后,有效用户变为 test,whoami 显示的也是有效用户的信息。这两个命令是有区别的

总结

  • id 可以查询有效用户的 UID 和 GID、groups 信息
  • who 可以查询当前登录在系统上的登录用户的信息
  • who am i 等同于 who -m,只打印执行该命令的登录用户的信息
  • whoami 可以查询当前有效用户的名字

(完)

本文为原创文章,若要转载请原链转载,并告知作者

欢迎关注我的微信公众号、知乎:多面手程序员

若您觉得该文还不错,随手点赞,手有余香,嘻嘻 : )

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。...
    miniminiming阅读 674评论 0 4
  • 转载: blog.csdn.net/qq1603013767/article/details/8192221 如何...
    一掠而过阅读 3,395评论 0 2
  • 一.帮助命令 1.man 获得帮助信息 基本语法:man [命令或配置文件] (功能描述:获得帮助信息) (1)...
    爱飞的疯子阅读 222评论 0 0
  • 命令:pwd 查看当前目录 命令:cd 用户相关 用户列表文件:/etc/passwd 用户组列表文件:/etc/...
    古佛青灯度流年阅读 527评论 0 2
  • 周六上晚班,7点左右如往常一样在店里准备打烊工作。 进来一位客人,先问有没有馒头,我说馒头卖完了,还有包子,...
    念的雪阅读 209评论 0 0