在 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 作为参数,该命令将打印有关给定用户或当前登录用户的信息。