1. 我是誰?指令 whoami
每個 Linux 用戶都以特定的帳戶操作,該帳戶具有自己的權限、限制和群組歸屬。在這節課中,你將學到如何檢查目前你使用的是哪個帳戶,擁有哪些權限,以及屬於哪些群組。了解當前用戶的參數對日常工作以及安全性、管理和調試問題的解決都非常重要。
當你在 Linux 系統中工作時,知道當前你以哪個帳戶操作是非常有用的。比如,如果你不小心以高權限帳戶(如 root)登入了系統,你可能對系統文件進行不可逆的更改。為了避免這些情況,可以使用指令 whoami。
語法
whoami
這個指令是幹嘛的?
whoami 指令輸出當前用戶的名稱,即你目前在系統中操作的身份。它幫你回答了最重要的問題:"我是誰?"
範例
$ whoami
student
在這種情況下,輸出 student 表示你以名稱為 student 的用戶身份登入了系統。如果你是以高權限用戶身份(如 root)操作,輸出將會是:
$ whoami
root
為什麼這很重要?
想像一下,你執行了一個刪除某個資料夾所有文件的指令(例如 rm -rf /important_directory)。如果你是普通用戶,系統可能會限制你,因為你沒有相應的權限。但如果你是 root 用戶,系統就會毫不猶豫地執行你的指令。whoami 指令幫助你避免陷入這樣的糟糕情況。
2. 詳細檢查使用者資訊:指令 id
了解自己的使用者名稱是不錯的,但這對於深入了解你在系統中的權限和特權來說還不夠。為了獲取更詳細的資訊,可以使用 id 指令。
語法
id [使用者]
如果沒有指定使用者名稱,指令 id 將顯示當前使用者的資訊。如果你指定了其他使用者的名稱,則可以檢查該帳戶的詳細資料。
指令 id 的輸出是什麼?
- UID (User ID) — 使用者的唯一識別碼。
- GID (Group ID) — 使用者的主要群組的唯一識別碼。
- 群組清單 — 使用者所屬的所有群組(包括主要群組)。
範例
$ id
uid=1001(student) gid=1001(student) 群組=1001(student),27(sudo),1002(developers)
- UID=1001: 這是當前使用者 (student) 的唯一識別碼。在 Linux 系統中,使用者
root的 UID 永遠是 0。 - GID=1001: 這是使用者 (student) 的主要群組識別碼。
- 群組=1001(student), 27(sudo), 1002(developers): 這裡列出該使用者所屬的其他群組。例如,
sudo群組允許 student 使用特權執行命令。
如果我們為其他使用者執行指令:
$ id user2
uid=1002(user2) gid=1002(user2) 群組=1002(user2),1001(developers)
可以看到使用者 user2 屬於 developers 群組。
3. 在實際工作中使用 UID 和 GID
每個用戶和群組都會分配自己的數字標識符 (分別是 UID 和 GID)。它們在系統內部非常重要,經常取代用戶和群組的文字名稱。為什麼這很重要呢?
- 有些系統進程直接使用數字標識符來提高效率。
- 檔案和資料夾的訪問權限不是通過用戶或群組名稱確定,而是通過它們的 UID 和 GID 確定。
- 在配置文件和日誌文件中 (例如
/etc/passwd),你可能看到的不是用戶名稱,而是它們的 UID。
4. 用 groups 研究群組
另外你可以使用命令 groups,來了解當前用戶屬於哪些群組。
語法
groups [使用者]
如果不輸入用戶名稱,你會獲取當前帳號的群組列表。如果輸入用戶名稱,你將了解指定用戶的群組。
範例:
$ groups
student developers sudo
$ groups user2
user2 developers
5. 使用指令
現在讓我們來點實踐,鞏固一下學到的知識。
檢查當前使用者帳號
- 打開終端機。
執行指令:
whoami檢查你的使用者名稱。
- 執行指令
sudo su(系統會要求你輸入密碼),然後再次執行whoami,看看你現在是以什麼身份在操作。
查看使用者資訊
執行指令:
查看你的使用者 UID、GID,以及你所屬的群組。id新增一個使用者(如果你有
sudo指令權限):sudo adduser testuser然後執行:
id testuser
分析群組歸屬
執行:
groups注意你的使用者屬於哪些群組。
將當前使用者添加到一個新群組:
sudo groupadd testgroup sudo usermod -aG testgroup $(whoami)檢查結果:
groups
6. 常見錯誤和棘手的問題
很多新手會混淆
whoami和id。記住:whoami僅顯示當前用戶名稱,而id提供更詳細的權限和群組信息。如果你沒有管理員權限(無法使用
sudo),你可能無法將用戶添加到群組或更改其參數。在這種情況下,你應該聯繫系統管理員。使用
id指定一個不存在的用戶將會返回錯誤:$ id nonexistinguser id: ‘nonexistinguser’: no such user
現在你知道如何檢查當前活動用戶是誰,以及他擁有哪些權限和訪問權。命令 whoami 和 id 看起來很簡單,但它們在理解 Linux 的用戶系統和訪問權限方面扮演著關鍵角色。在實際工作中,你會經常使用它們來診斷問題、檢查權限和配置用戶。
GO TO FULL VERSION