Linux 中的 id 命令

评论 0 浏览 0 2020-01-18

id 是一个命令行实用程序,可以打印真实有效的用户和组 ID。

使用id命令

id命令的语法如下:

id [OPTIONS] [USERNAME]

如果省略用户名,id 命令将显示有关当前登录用户的信息。

当不带任何选项调用时,id 会打印真实用户 ID (uid)、用户的真实主要组 ID (gid) 以及用户所属的补充组的真实 ID (groups)。仅当有效用户 ID、组 ID 和补充组 ID 与真实 ID 不同时,才会打印有效用户 ID、组 ID 和补充组 ID。

id

输出

uid=1000(linuxize) gid=1000(linuxize) groups=1000(linuxize),4(adm),27(sudo),998(docker)

如果启用了 SELinux,则 id 还会打印用户的安全上下文 (context):

输出

uid=1000(linuxize) gid=1000(linuxize) groups=1000(linuxize) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

要获取有关其他用户的信息,请将用户名或用户 ID 作为参数传递给 id 命令:

id mark

输出

uid=1001(mark) gid=1001(mark) groups=1001(mark),998(docker)

如果系统上存在名称与提供的 ID 相同的用户,则名称查找优先。使用用户 ID 作为参数时,请在 ID 前添加 + 符号以避免将 ID 解释为名称。

例如,如果您有一个名为1010的用户和另一个ID为1010的用户,如果您键入id 1010,该命令将显示有关名为1010的用户的信息。要获取有关 ID 为 1010 的用户的信息,请键入 id +1010

id命令选项

id 命令接受多个选项,允许您仅显示特定信息。当在 shell 脚本中使用 id 时,这很有用。

要仅打印有效用户 ID,请使用 -u (--user) 选项:

id -u 

输出

1000

-g (--group) 选项告诉 id 仅打印有效组 ID:

id -g

输出

1000 4 27 998

使用-G (--groups) 选项打印用户所属的所有组的有效ID 到:

id -G

输出

1000

要打印名称而不是数字,请使用-n--name 选项。该选项只能与-u-g-G结合使用。

id -un

输出

linuxize

使用 -un 选项运行 id 命令会产生与运行 whoami 相同的输出 ,id -Gn的输出相当于groups命令的输出。

-r、(--real)选项可以与-u-g-G结合使用来打印真实值,而不是有效值:

id -ur

要仅打印进程的安全上下文(通常是用户的安全上下文),请使用 -Z (--context) 选项:

id -Z

输出

unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

如果 SELinux 已禁用 , id 打印错误消息:

输出

id: --context (-Z) works only on an SELinux-enabled kernel

-z (--zero) 选项告诉 id 使用 NUL 字符而不是空格来分隔输出项:

id -znG

输出

linuxizeadmsudodocker

当将输出传输到可以解析换行符的命令时,这非常有用

结论

id 命令打印有关给定用户的信息,如果没有提供用户名或 ID 作为参数,则打印当前登录用户的信息。

如果您有任何疑问,请随时发表评论。

最后更新2023-10-03
0 个评论
标签