CodeGym /課程 /Docker SELF /檢查當前訪問權限:命令 `whoami`, `id`

檢查當前訪問權限:命令 `whoami`, `id`

Docker SELF
等級 2 , 課堂 3
開放

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 的輸出是什麼?

  1. UID (User ID) — 使用者的唯一識別碼。
  2. GID (Group ID) — 使用者的主要群組的唯一識別碼。
  3. 群組清單 — 使用者所屬的所有群組(包括主要群組)。

範例

$ 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. 使用指令

現在讓我們來點實踐,鞏固一下學到的知識。

檢查當前使用者帳號

  1. 打開終端機。
  2. 執行指令:

    whoami
    

    檢查你的使用者名稱。

  3. 執行指令 sudo su(系統會要求你輸入密碼),然後再次執行 whoami,看看你現在是以什麼身份在操作。

查看使用者資訊

  1. 執行指令:

    id
    
    查看你的使用者 UID、GID,以及你所屬的群組。
  2. 新增一個使用者(如果你有 sudo 指令權限):

    sudo adduser testuser
    

    然後執行:

    id testuser
    

分析群組歸屬

  1. 執行:

    groups
    

    注意你的使用者屬於哪些群組。

  2. 將當前使用者添加到一個新群組:

    sudo groupadd testgroup
    sudo usermod -aG testgroup $(whoami)
    

    檢查結果:

    groups
    

6. 常見錯誤和棘手的問題

  1. 很多新手會混淆 whoamiid。記住:whoami 僅顯示當前用戶名稱,而 id 提供更詳細的權限和群組信息。

  2. 如果你沒有管理員權限(無法使用 sudo),你可能無法將用戶添加到群組或更改其參數。在這種情況下,你應該聯繫系統管理員。

  3. 使用 id 指定一個不存在的用戶將會返回錯誤:

    $ id nonexistinguser
    id: ‘nonexistinguser’: no such user
    

現在你知道如何檢查當前活動用戶是誰,以及他擁有哪些權限和訪問權。命令 whoamiid 看起來很簡單,但它們在理解 Linux 的用戶系統和訪問權限方面扮演著關鍵角色。在實際工作中,你會經常使用它們來診斷問題、檢查權限和配置用戶。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION