id是一个命令行程序,可用于打印用户名,用户ID,用户组ID,SeLinux安全上下文,次要组ID。

在本教程中,我们将说明如何使用id命令和常见的选项。

id命令

id命令的语法形式是id [OPTIONS] [USERNAME]。如果省略用户名,id命令打印当前登录用户相关的信息。

在不指定任何选项运行id命令,id打印当前用户ID/UID,用户的主要组ID/GID和用户次要组ID/groups 。

仅当用户ID有效时,才会打印用户主要组ID和次要组ID,否则终端将会打印用户不存在的消息id: ‘my’: no such user。

如果启用SELinux,id命令还会打印用户的安全上下文context。要获取另一个用户的相关信息,请将用户名或用户ID作为参数传递给id命令:

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

如果系统存在名称与ID相同的用户,则优先使用名称搜索用户。当使用用户ID作为参数时,请在ID前面添加加号+,避免shell将ID解释为名称。

例如,如果您有一个名称为1010用户和另一个ID为1010的用户。如果运行命令id 1010

id 1010命令将打印1010用户的信息。要获取ID为1010的用户的信息,请运行命令id +1010

id 1010
id +1010

id命令选项

id命令接受几个选项,这些选项仅允许您打印用户指定的信息。当在shell脚本中使用id命令时,这会非常有用。

要仅打印用户ID,请使用id命令-u/--user选项。-g/--group选项仅打印有效的组ID。-G/--groups选项仅打印用户次要组

要打印名称而不包括数字,请使用id命令-n/--name选项。-n选项只能与-u-g-G组合使用。

当指定-un选项运行id命令时,打印的结果与运行whoami命令相同的输出,并且命令id -Gn输出等同于groups命令的输出。

id -u 
id -g
id -G
id -un

-r/--real选项可以与-u-g-G组合使用,仅打印用户ID,组ID,所有次要ID。

要仅打印进程安全上下文,通常是用户安全上下文,请使用id命令的-Z/--context选项。

如果SELinux被禁用id打印错误消息id: --context (-Z) works only on an SELinux-enabled kernel。

id -ur
id -Gr
id -gr

id -Z

结论

如果没有提供用户名或ID作为id命令的参数,id命令将打印当前登录用户的信息。如有任何疑问,请随时发表评论。