CodeGym /課程 /Docker SELF /管理群組:創建、添加和刪除群組中的使用者(`groupadd`、`usermod -aG`、`groups`)

管理群組:創建、添加和刪除群組中的使用者(`groupadd`、`usermod -aG`、`groups`)

Docker SELF
等級 2 , 課堂 2
開放

1. 認識 Linux 中的群組

在 Linux 作業系統中,群組能幫助按興趣、職責或其他標準將用戶聚合在一起,並分配給他們共同的訪問權限。今天我們來聊聊如何處理群組、向其中添加用戶以及如何合理地進行管理。準備好了嗎?那麼我們開始吧!

讓我們從一個生活中的比喻開始。想像一下,你在玩一個線上遊戲,裡面有公會。每個公會有自己的成員,他們可以訪問公共資源:倉庫、聊天和戰略房間。在 Linux 中,群組扮演了相同的角色。群組允許你:

  1. 簡化對多位用戶同時訪問文件和資源的管理。
  2. 根據角色或任務將用戶分組為團隊。
  3. 減少系統管理員的煩惱。

當系統檢查用戶是否可以訪問文件時,它會查看三個級別的權限:文件所有者、群組和其他人。如果用戶屬於文件中指定的群組,並且該群組有訪問權限,那麼用戶會開心,管理員也會滿意。


2. 群組管理的基礎指令

Linux 提供了一些簡單又強大的工具來操作群組:groupadd, usermod, groups, groupdelgpasswd。我們會一步步來學習。

1. 建立新的群組 groupadd

在系統中建立新群組非常簡單。可以用 groupadd 指令。比如,如果我們想建立一個名為 developers 的群組,執行以下命令:

sudo groupadd developers

搞定!群組已建立。為了確保它真的存在,可以查看檔案 /etc/group —— 這就像系統中所有群組的聯絡人列表:

cat /etc/group | grep developers

你會看到類似下面的行:

developers:x:1001:

這裡面每個部分的含義是:

  • developers — 群組名稱。
  • x — 密碼欄位(通常不用)。
  • 1001 — 唯一的 Group ID (GID)。
  • 雙冒號後的空白部分 — 用於列出該群組內的使用者。
輕鬆一刻:

如果 GID 是群組的電話號碼,那麼 /etc/group 就是群組的電話簿。


2. 將使用者新增到群組 usermod -aG

現在讓我們把開發者加入到新群組 developers 裡。可以使用帶有選項 -aGusermod 指令。例如,新增使用者 john

sudo usermod -aG developers john

這裡有幾個重點要注意:

  • 參數 -a 表示 append (新增)。如果省略它,可能會不小心把該使用者從所有群組中移除,只留下指定的新群組。
  • 參數 -G 指定了新增使用者的群組。

可以用命令 groups 檢查使用者加入了哪些群組:

groups john

或者用 id 指令檢查更詳細的資訊:

id john

輸出大概會是這樣的格式:

uid=1002(john) gid=1002(john) groups=1002(john),1001(developers)

3. 從群組中移除使用者

當你的 "開發者" 決定改行當 barista 的時候,你需要把他從群組中移除。可以用指令 gpasswd

sudo gpasswd -d john developers

執行後,使用者 john 就不再屬於 developers 群組。別忘了用 groups john 檢查確認他已經正式退出了。


4. 刪除群組 groupdel

如果群組已不再需要,可以用 groupdel 指令刪除。例如:

sudo groupdel developers
注意!

如果群組中還有使用者,他們並不會因此受到影響。只是他們不再能夠引用這個群組。


3. 實作任務

我們來實際嘗試一下,像真正的管理員一樣創建和設置群組吧。

場景:

  1. 創建一個群組 designers
  2. 創建兩個新用戶:alicebob
  3. 添加這些用戶到 designers 群組。
  4. 檢查用戶是否被成功添加到群組。
  5. designers 群組中刪除用戶 alice

解決方案:

步驟 1. 創建群組

sudo groupadd designers

步驟 2. 創建用戶

sudo adduser alice
sudo adduser bob

步驟 3. 添加用戶到群組

sudo usermod -aG designers alice
sudo usermod -aG designers bob

步驟 4. 驗證添加

groups alice
groups bob

步驟 5. 從群組刪除 alice

sudo gpasswd -d alice designers

4. 特點和常見錯誤

處理群組就像處理小貓:看起來簡單又輕鬆,但稍不注意,就會搞出一團亂:

  1. 選項 -aG。忘記加 -a,你會意外地從所有群組中刪除用戶,只留下新群組的成員。這特別“有趣”,如果該用戶本來是系統群組的成員,比如 sudo

  2. 更改需要重新登入後生效。如果用戶在被添加到新群組後看不到它的效果——別慌!他需要退出系統並重新登入,才能獲得新權限。

  3. 注意命名規則。不要在群組名稱中使用空格或特殊字符。像 awesome@group 這樣的名稱運行起來會有問題,還會讓管理員抓狂。

  4. 檢查訪問權限。群組已創建並添加?沒錯,但如果文件沒有為群組設置權限,用戶的期望就會落空。記住這一點:權限需要單獨檢查並分配。

現實生活中

在真實項目中,群組管理可以用來:

  • 為開發人員、測試人員和管理員劃分服務器資源的訪問權限。
  • 為團隊設置共享的工作目錄。
  • 管理對資料庫、配置文件、腳本的訪問權限,還有(當然)咖啡機的訪問權限(好吧,在這方面 Linux 暫時救不了我們)。

現在,當你知道如何在 Linux 中創建和管理群組後,你已經準備好優雅而高效地管理你的系統了。

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