whoami:操作系統使用者識別的全面指南

你有沒有發現自己曾經迷失在命令行的迷宮中,想知道你在計算機系統中是誰?猜猜看?在數字領域中尋找自我認同的探索中,你並不孤單。不過,不用擔心!whoami 命令可以幫助揭示你的數字身份。

在本教程中,你將了解你的系統對你的看法,並獲得將提升你的技術水平到全新境界的洞察力。

準備好了嗎?你即將發現自己的另一面,一直就在眼前!

先決條件

在你深入研究操作系統用戶識別的細節之前,請確保你能夠訪問 Windows、macOS 或 Linux 機器。本教程使用 Windows 11 和 macOS 12.5(Monterey)進行演示。

通過 whoami 命令檢索已登錄用戶名

每個用戶都有一個獨特的身份,管理他們的訪問和操作。探索你的身份不僅僅是輸入命令;它是關於揭示你的數字身份的層次。

打開終端或 PowerShell,運行下面的 whoami 命令,以獲取有關當前已登錄用戶的信息。

whoami

以下,輸出顯示與當前會話關聯的使用者名稱(即,admin)。

Retrieving the currently logged-in username

現在,在 macOS 上運行以下 who 命令,以列出系統中所有已登錄的使用者。

? 此命令在 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'
# 以 CSV 格式顯示 groups 命令的輸出
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/