Linux 用户/组 ID 显示

LinuxLinuxBeginner
立即练习

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

介绍

Linux 操作系统使用基于用户和组标识符的强大权限系统。理解如何查看和解释这些标识符是系统管理和安全管理的基础。这个 Lab(实验)专注于掌握 id 命令,这是一个用于在 Linux 中显示用户和组信息的强大工具。

通过学习使用 id 命令,你将能够识别你在系统中的身份、你属于哪些组,以及如何检查其他用户的权限。这些技能构成了更高级的 Linux 安全概念和权限管理的基础。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") linux/UserandGroupManagementGroup -.-> linux/id("User/Group ID Displaying") subgraph Lab Skills linux/cd -.-> lab-271305{{"Linux 用户/组 ID 显示"}} linux/groups -.-> lab-271305{{"Linux 用户/组 ID 显示"}} linux/id -.-> lab-271305{{"Linux 用户/组 ID 显示"}} end

显示你的用户身份

在 Linux 中,每个用户都有一个唯一的用户标识符(UID),并且至少属于一个具有组标识符(GID)的组。在这一步中,你将学习如何显示你自己的用户身份信息。

首先,打开你的终端,并确保你在项目目录中:

cd ~/project

现在,使用不带任何参数的 id 命令来显示你自己的用户身份信息:

id

这个命令会显示你当前的用户 ID(UID)、你的主组 ID(GID),以及你所属的任何其他组。输出结果将类似于以下内容:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

让我们分解一下这个输出:

  • uid=5000(labex) - 这显示了你的用户 ID(5000)和用户名 (labex)
  • gid=5000(labex) - 这显示了你的主组 ID(5000)和组名 (labex)
  • groups=5000(labex),27(sudo),121(ssl-cert),5002(public) - 这列出了你所属的所有组,包括它们的 ID 和名称

用户 ID 和组 ID 是 Linux 系统内部使用的数值,用于跟踪权限。括号中的名称是这些数字 ID 的人类可读的等效项。

检查其他用户的身份

在 Linux 中,系统管理员经常需要检查其他用户的身份和组成员关系。在这一步中,你将学习如何查看不同用户的身份信息。

设置脚本已经为此练习创建了另一个名为 npc 的用户。你可以通过将用户名指定为 id 命令的参数来查看此用户的身份信息:

id npc

输出结果将类似于这样:

uid=5001(npc) gid=5001(npc) groups=5001(npc)

这表明用户 npc 具有:

  • 用户 ID(UID):5001
  • 主组 ID(GID):5001
  • 组成员关系:仅主组 npc

请注意,此用户所属的组比你的帐户少。在 Linux 中,与管理用户相比,普通用户的组成员关系通常受到限制。用户所属的组的数量直接影响他们可以访问哪些文件以及可以在系统上执行哪些操作。

使用 ID 命令选项

id 命令带有几个有用的选项,允许你显示用户身份信息的特定部分。在这一步中,你将探索这些选项。

仅显示用户 ID

要仅显示用户 ID(UID),而不显示任何其他信息,请使用 -u 选项:

id -u

输出将只是一个数字,例如:

5000

这是你的数字用户 ID,没有任何格式或其他信息。

仅显示主组 ID

同样,要仅显示你的主组 ID(GID),请使用 -g 选项:

id -g

输出将是一个表示你的主组 ID 的数字:

5000

显示名称而不是数字

你可以将上述选项与 -n 选项结合使用,以显示名称而不是数字 ID:

id -un

这将输出你的用户名:

labex

同样,要显示你的主组名称:

id -gn

输出:

labex

这些选项在 shell 脚本中特别有用,在这些脚本中,你需要以编程方式捕获和使用特定的身份信息。

探索组成员关系

在 Linux 中,用户的访问权限通常由组成员关系决定。在这一步中,你将学习如何更详细地查看和理解组成员关系。

列出你所属的所有组

你可以使用 groups 命令来显示你的用户所属的所有组:

groups

输出将是组名称的列表:

labex sudo ssl-cert public

id 命令相比,这是一个更简单的视图,因为它只显示组名称,而不显示其 ID。

仅使用 ID 显示组信息

或者,你可以使用带有 -G 选项的 id 命令来显示所有组 ID:

id -G

输出:

5000 27 121 5002

并使用 -Gn 选项来显示所有组名称:

id -Gn

输出:

labex sudo ssl-cert public

检查另一个用户的组成员关系

你还可以检查另一个用户属于哪些组:

groups npc

输出:

npc : npc

或者使用 id 命令:

id -Gn npc

输出:

npc

理解组成员关系对于 Linux 系统管理至关重要,因为它们决定了文件访问权限和其他系统权限。

总结

在这个实验中,你已经学习了如何使用 id 命令和相关的实用程序来显示和解释 Linux 中的用户和组信息。你现在知道如何:

  • 使用 id 命令显示你自己的用户和组信息
  • 检查其他用户的身份信息
  • 将各种选项与 id 命令一起使用,以显示身份信息的特定部分
  • 使用 idgroups 命令探索组成员关系

这些技能构成了理解 Linux 用户管理和权限的基础。随着你继续你的 Linux 之旅,你会发现这些命令对于解决权限问题、配置文件访问和管理用户帐户非常有价值。