在 Linux 中 id 命令的用法

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

使用 id 命令

id 命令的语法如下:

id [OPTIONS] [USERNAME]

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

不带任何选项调用时, id 将打印真实用户 ID(uid) ,用户的真实主要组 ID(gid) 和 groups 用户所属的补充组的真实 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 mark
uid=1001(mark) gid=1001(mark) groups=1001(mark),998(docker)

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

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

id 命令选项

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

要仅打印有效的用户 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
buzheng

id 使用 -un 选项运行命令将产生与 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 用 NULL 字符分隔输出项目,而不是空白:

id -znG
buzhengadmsudodocker

当将输出传递给可以解析换行符的命令时,这很有用

结论

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