Linux中的ID命令

时间:2020-03-05 15:27:41  来源:igfitidea点击:

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

使用“ id”命令

'id'命令的语法如下:

id [OPTIONS] [USERNAME]

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

如果不带任何选项调用,则'id'将打印真实用户ID('uid'),用户的真实主要组ID('gid')和用户所属的补充组('groups')的真实ID。
仅当有效用户ID,组ID和补充组ID与实际用户ID不同时,才打印有效用户ID,组ID和补充组ID。

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

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

uid=1000(theitroad) gid=1000(theitroad) groups=1000(theitroad) 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'时,这很有用。

要仅打印有效的用户标识,请使用'-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
theitroad

使用'-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
theitroadadmsudodocker

当将输出管道输送到可以解析换行符的命令时,这很有用