Linux 多用戶環境下,帳號管理是系統管理員的基本功。本文系統整理 useradd、usermod、userdel 三大核心指令的語法、常用選項與實戰範例,並說明底層涉及的系統檔案(/etc/passwd、/etc/shadow、/etc/group)變化。

useradd)useradd [選項] 用戶名
| 選項 | 說明 |
|---|---|
-c | 註解描述 |
-d | 指定家目錄(搭配 -m 自動建立) |
-g | 指定主要群組 |
-G | 指定附屬群組(逗號分隔) |
-s | 指定登入 Shell(如 /bin/bash) |
-u | 指定 UID(搭配 -o 允許重複) |
# 建立用戶 sam,家目錄 /usr/sam
useradd -d /usr/sam -m sam
# 建立用戶 gem,Shell /bin/sh,主群組 group,附屬群組 adm,root
useradd -s /bin/sh -g group -G adm,root gem
底層動作:向 /etc/passwd、/etc/shadow、/etc/group 寫入記錄;若用 -m 會複製 /etc/skel 內容至家目錄。
userdel)useradd [選項] 用戶名
-r:連同家目錄與郵件佇列一併刪除(生產環境建議加上)。userdel -r sam
usermod)usermod [選項] 用戶名
| 選項 | 作用 |
|---|---|
-d | 變更家目錄(搭配 -m 移動內容) |
-g | 變更主要群組 |
-G | 變更附屬群組(覆蓋原有,慎用) |
-aG | 新增附屬群組(保留原有,推薦) |
-s | 變更登入 Shell |
-l | 修改登入名稱 |
-L / -U | 鎖定 / 解鎖帳號(操作 /etc/shadow) |
# 將 sam 家目錄移至 /home/sam_new
usermod -d /home/sam_new -m sam
# 將 sam 加入 docker 群組(保留原群組)
usermod -aG docker sam
# 鎖定帳號
usermod -L sam
| 檔案 | 用途 | 關鍵欄位 |
|---|---|---|
/etc/passwd | 用戶基本資訊 | 用戶名:密碼佔位:x:UID:GID:註解:家目錄:Shell |
/etc/shadow | 加密密碼與過期策略 | 用戶名:加密密碼:最後修改:最小/最大天數:警告:失效:保留 |
/etc/group | 群組定義 | 群組名:密碼佔位:GID:成員列表 |
system-config-users(RHEL/CentOS)users-admin(GNOME)kuser(KDE)熟練掌握指令操作,配合定期審計 /etc/passwd、/etc/shadow,即能維持系統帳號乾淨、安全。