whoami:操作系统用户识别综合指南

你是否曾经发现自己迷失在命令行的迷宫中,想知道你在计算机系统中是谁?猜猜看?在数字领域中,你并不孤单,为了自我发现而奋斗。不过不用担心!whoami命令可以帮助揭示你的数字身份。

在本教程中,你将了解你的系统对你的看法,并获得能够提升你科技技能的见解。

系好安全带,因为你即将发现一个一直隐藏在你眼前的自己!

先决条件

在你深入了解操作系统用户标识的复杂世界之前,确保你能够访问Windows、macOS或Linux计算机。本教程使用Windows 11和macOS 12.5(Monterey)进行演示。

通过whoami命令检索已登录用户名

每个用户都有一个独特的身份,决定了他们的访问和操作权限。探索你的身份不仅仅是输入命令,还要揭示你数字身份的各个层面。

打开终端或PowerShell,并运行下面的whoami命令,获取有关当前登录用户的信息。

whoami

下面的输出显示与当前会话关联的用户名(即,admin)。

Retrieving the currently logged-in username

现在,在 macOS 上运行以下who命令,以列出您 macOS 系统中的所有已登录用户。

? 此命令在 Windows 上不存在。

who

下面的输出指示用户macos登录了两次,一次通过console,另一次通过ttys000 终端。这两次登录分别于8月31日的不同时间开始(21:48和21:49)。

打开多个终端窗口或多次登录的用户可能会被分配不同的终端设备名称,如ttys001ttys002等。这些设备名称有助于识别和管理同时在系统上发生的其他终端会话。

Showing logged-in users’ details

验证用户组成员资格

除了基本用法外,whoami 命令还提供其他选项,以提供有关当前用户的更详细信息。更深入地了解纷繁的组成员关系。

whoami 命令让您揭示您数字身份中迷人的一层 – 您所属的组。这宝贵的洞察力使您能够更有效地导航系统权限、访问权限和协作环境。

运行以下whoami 命令以查看您的用户帐户的组成员资格(/groups)。

# PowerShell 命令
whoami /groups
# macOS/Linux 命令
groups

下面显示了您当前用户所属的组列表,为您提供了有关访问权限和特权的宝贵见解。

用户组简化了分配权限和访问权限的过程。您可以将权限分配给组和属于这些组的用户,以继承该组的权限,而不是为每个用户设置单独的权限。

Displaying the current user’s group membership (PowerShell)
Showing the current user’s group membership (macOS/Linux)

获取用户安全标识符(SID)

您的用户SID是您在Windows域内的数字身份证。就像您的实体身份证帮助您访问某些地方一样,SID帮助您的系统管理谁可以访问什么。

SID就像一名保镖,通过设置细粒度权限,确保只有授权用户可以访问特定资源、文件和文件夹。

执行以下命令以检索当前用户的(/user)SID。

# PowerShell命令
whoami /user
# macOS/Linux命令
id

下面,连同用户名一起,是用户的相应SID(对于Windows),其中包括一系列数字组件,用于标识以下内容:

  • 修订版 – 表示SID结构的版本。
  • 标识符授权 – 为每个生成SID的授权分配的唯一值。
  • 域标识符 – 表示域或安全授权。
  • 相对标识符(RID) – 为域内的每个安全主体分配的唯一编号。
Obtaining the user SID

在 macOS/Linux 系统中,id 命令显示用户和组信息,包括用户名、UID(用户ID)、GID(组ID)以及附加组ID如下。

Showing the UID and the GID of the current user

显示已登录用户的安全权限

whoami 命令不仅仅是了解你的用户名,还是理解你的数字权限程度的关键。跳入一个直接影响你与数字环境交互方式的领域 – 安全权限。

权限是指控制系统上用户帐户操作的特定权利和权限。通过了解启用或禁用了哪些权限,您可以识别潜在的漏洞并采取适当的措施予以缓解。

运行以下命令以显示当前用户的安全权限(/priv)。

whoami /priv

? 基于Unix的系统没有直接等价于Windows的 whoami /priv 命令。相反,idgroups 命令可以作为替代。安全权限通过文件权限、用户帐户和访问控制机制进行管理。

您将看到类似下面的输出,其中:

  • 权限名称 – 显示用户可用权限的名称。
  • 描述 – 每个权限允许用户执行的简要描述。
  • 状态 – 表示用户每个权限的当前状态,有两种可能的状态如下:
State Details
Enabled Indicates the user has been granted that specific privilege and can exercise the associated actions on the system.
Disabled Indicates the user does not have the corresponding privilege and is not allowed to perform actions associated with that privilege.
Displaying the security privileges of the currently logged-in user

格式化whoami命令的输出

格式化whoami命令的输出可能看起来是一个小细节,但这是一个巧妙的技巧,可以让您在终端中的生活更顺畅。whoami命令有选项,可以选择最适合您需求的输出格式:列表或CSV格式。

执行下面的每个whoami命令,以显示当前用户的安全权限(/priv)以两种不同的格式。

列表格式(/fo list)如果您希望获得更紧凑的显示,则可能会有所帮助。但是,如果您需要进一步处理或在电子表格应用程序中进行分析的信息,则CSV格式(/fo csv)更为合适。

# 以列表格式显示结果
whoami /priv /fo list
# 以CSV格式显示结果
whoami /priv /fo csv

如下所示,您不必费力地盯着一团字符,而是可以得到整齐有序的输出。

无论您是休闲用户还是终端忍者,格式化whoami命令的输出不仅关乎美观,更关乎有效的沟通。

Formatting the whoami command’s output

或者,运行idgroups命令,通过管道(|)传输到流编辑器(sed)命令以格式化输出,如下所示。基于Unix的系统没有相当于whoami /priv /fo listwhoami /priv /fo csv的等效命令。

以下命令使用正则表达式执行以下操作:

  • 对每个字符串使用换行符(/\n/)替换空格和逗号([ ,])分隔符。
  • 用逗号替换空格(tr ' ' ','),捕获非空格文本(\([^ ]*\)),并用双引号括起来("\1")。
# 将id命令的输出以列表格式显示
id | sed 's/[ ,]/\n/g'
# 将groups命令的输出以csv格式显示
groups | sed 's/\([^ ]*\)/"\1"/g' | tr ' ' ','
Displaying the id command’s output in list format
Displaying the groups command’s output in csv format

结论

在本教程中,您深入了解了通过whoami命令发现和理解用户身份的复杂艺术。您已经学会获取用户名、组成员资格,甚至是用户的安全标识符(SID)。

凭借您对各种管理任务中的用户识别的理解,故障排除权限以及确保安全系统访问已在您的掌握之中。

现在,为什么不沉浸在认证和授权机制的世界里呢?多因素认证(MFA)、基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)怎么样?了解这些机制的运作方式可以显著增强您对用户管理和系统安全的理解。

Source:
https://adamtheautomator.com/whoami/