1、命令简介
id:用于显示当前用户的用户标识(UID)、组标识(GID)以及所属的附加组信息。这些标识是用于授权和访问控制的重要组成部分。
2、命令语法
id [OPTION]... [USER]
3、命令描述
打印指定用户的用户和组信息,或打印当前用户的用户和组信息(如果省略user)。
4、命令选项
选项 | 说明 |
-a | 为与其他版本兼容而忽略的选项。 |
-Z, --context | 仅显示进程的安全上下文。 |
-g, --group | 仅显示有效的组 ID。 |
-G, --groups | 显示所有的组 ID。 |
-n, --name | 对于 -ugG 选项,以名称而不是数字显示。 |
-r, --real | 对于 -ugG 选项,显示实际的 ID 而不是有效的 ID。 |
-u, --user | 仅显示有效的用户 ID。 |
-z, --zero | 使用 NUL 字符而不是空格分隔条目; 在默认格式中不允许使用。 |
--help | 显示帮助信息并退出。 |
--version | 输出版本信息并退出。 |
5、使用示例
1)不带任何参数的 id 命令显示调用进程的用户和组名,以及数字 ID,即在屏幕上运行该命令的当前用户。
$ id
uid=1000(expert) gid=1000(expert) groups=1000(expert),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
2)要获取其他用户的信息,请将用户名或用户 ID 作为 id 命令的参数传递。
$ id levi
uid=1500(levi) gid=1500(levi) groups=1500(levi)
3)使用 -u 选项显示用户的有效用户 ID。
$ id -u expert
1000
4)使用 -g 选项显示用户的有效组 ID。
$ id -g expert
1000
5)使用 -G 选项的 id 命令显示用户的有效组 ID 以及所有相关的组(次要组)。
$ id -G expert
1000 4 24 27 30 46 113 128
6)使用 -n 选项的 id 命令显示用户的名称而不是数字。此选项只能与 -u、-g 和 -G 选项一起使用。
$ id -nG expert
expert adm cdrom sudo dip plugdev lpadmin sambashare
7)使用 -z 选项的 id 命令使用 NUL 字符分隔条目,而不是空格。这用于将命令的输出传递给另一个程序以进行更好的处理。我们可以通过将 id 命令的输出传递给 hexdump 命令来验证输出中的 NUL 字符。
$ id -z -nG expert
expertadmcdromsudodipplugdevlpadminsambashare$
$ id -z -nG expert|hexdump -c
0000000 e x p e r t \0 a d m \0 c d r o m
0000010 \0 s u d o \0 d i p \0 p l u g d e
0000020 v \0 l p a d m i n \0 s a m b a s
0000030 h a r e \0
0000035