Linux id 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Linux 的 id 命令,这是一个用于显示当前用户或系统中任何其他用户信息的有用工具。我们将了解 id 命令的用途和用法,学习如何识别用户和组信息,并探索其他选项和自定义功能。

id 命令允许你显示用户 ID (UID)、组 ID (GID) 以及用户所属的附加组。你可以使用它来获取当前用户或系统中任何其他用户的信息。此外,id 命令还可以用于显示有效用户 ID 和组 ID,这些 ID 是在执行命令时用于权限检查的 ID。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") linux/UserandGroupManagementGroup -.-> linux/whoami("User Identifying") linux/UserandGroupManagementGroup -.-> linux/id("User/Group ID Displaying") subgraph Lab Skills linux/help -.-> lab-422729{{"Linux id 命令实用示例"}} linux/groups -.-> lab-422729{{"Linux id 命令实用示例"}} linux/whoami -.-> lab-422729{{"Linux id 命令实用示例"}} linux/id -.-> lab-422729{{"Linux id 命令实用示例"}} end

了解 id 命令的用途和用法

在这一步中,我们将探索 Linux 中 id 命令的用途和用法。id 命令是一个非常有用的工具,它允许你显示当前用户或系统中任何其他用户的信息。

id 命令的基本用法如下:

$ id
uid=1000(labex) gid=1000(labex) groups=1000(labex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

该命令显示了当前用户的用户 ID (UID)、组 ID (GID) 以及用户所属的附加组。

你也可以通过指定用户名作为参数,使用 id 命令显示另一个用户的信息:

$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

这将显示用户 alice 的用户和组信息。

id 命令还可以用于显示有效用户 ID 和组 ID,这些 ID 是在执行命令时用于权限检查的 ID。你可以使用 -e 选项来显示有效 ID:

$ id -e
uid=1000(labex) gid=1000(labex)

示例输出:

uid=1000(labex) gid=1000(labex) groups=1000(labex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

使用 id 命令识别用户和组信息

在这一步中,我们将学习如何使用 id 命令来识别当前用户以及系统中其他用户的用户和组信息。

首先,让我们验证当前用户的用户和组信息:

$ id
uid=1000(labex) gid=1000(labex) groups=1000(labex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

该输出显示了当前用户 labex 的用户 ID (UID)、组 ID (GID) 以及用户所属的附加组。

你也可以使用 id 命令来显示系统中其他用户的信息。例如,要获取用户 alice 的用户和组信息,可以运行以下命令:

$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

该命令将显示用户 alice 的 UID、GID 以及附加组。

此外,你可以使用 -u 选项仅显示用户 ID,使用 -g 选项仅显示组 ID:

$ id -u
1000
$ id -g
1000

示例输出:

uid=1000(labex) gid=1000(labex) groups=1000(labex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lxd),128(sambashare)

探索 id 命令的附加选项和自定义功能

在这最后一步中,我们将探索 id 命令提供的一些附加选项和自定义功能。

一个有用的选项是 -n 标志,它显示名称而不是数字 ID。例如:

$ id -nu
labex
$ id -ng
labex

这将显示用户名和组名,而不是数字 ID。

你还可以使用 --help 选项查看 id 命令的所有可用选项:

$ id --help
Usage: id [OPTION]... [USER]
Print user and group information for the specified USER,
or (when USER omitted) for the current user.

  -a             以可读格式打印所有信息
  -Z, --context  仅打印进程的安全上下文
  -g, --group    仅打印有效组 ID
  -G, --groups   打印所有组 ID
  -n, --name     打印名称而不是数字,适用于 -ugG
  -r, --real     打印真实 ID 而不是有效 ID,适用于 -ugG
  -u, --user     仅打印有效用户 ID
  -z, --zero     使用 NUL 字符分隔条目,而不是空格;
                   默认格式中不允许使用
      --help     显示此帮助信息并退出
      --version  输出版本信息并退出

示例:
  id
  id username
  id -a
  id -u
  id -g

这显示了你可以与 id 命令一起使用的所有可用选项,以自定义输出。

最后,你可以结合多个选项来获取所需的信息。例如,获取当前用户的用户名和组名:

$ id -un
labex
$ id -gn
labex

示例输出:

$ id -un
labex
$ id -gn
labex

总结

在本实验中,你学习了如何在 Linux 中使用 id 命令来显示当前用户或系统中任何其他用户的信息。id 命令可以显示用户 ID (UID)、组 ID (GID) 以及用户所属的附加组。你还探索了如何使用 -e 选项来显示有效用户 ID 和组 ID,这些 ID 是在执行命令时用于权限检查的 ID。此外,你还学习了如何通过指定用户名作为参数,使用 id 命令识别系统中其他用户的用户和组信息。

Linux 命令速查表