Linux 命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux id 命令。

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

推荐文档