Linux 多使用者環境下,避免直接使用 root 操作是基本安全原則。本文從查看當前使用者開始,詳細說明 useradd 兩種建立使用者模式 (互動式設密碼、單指令設密碼)、核心參數表、userdel 刪除使用者與實戰範例。
whoami
# 輸出範例:root

# 建立使用者
useradd alice
# 互動式設定密碼 (輸入兩次)
passwd alice


useradd bob
echo "SecurePass123!" | passwd --stdin bob
| 參數 | 功能 | 範例 |
|---|---|---|
-c "備註" | GECOS 欄位描述 | -c "Alice Chen, Dept IT" |
-d 目錄 | 指定家目錄 (預設 /home/用戶名) | -d /data/users/alice |
-D | 顯示/修改預設值 | useradd -D |
-e YYYY-MM-DD | 帳號過期日 | -e 2025-12-31 |
-f 天數 | 密碼過期後寬限天數 (0=立即鎖定, -1=永不) | -f 30 |
-g 群組 | 指定初始群組 (GID 或名稱) | -g users |
-G 群組1,群組2 | 指定附加群組 (逗號分隔) | -G wheel,docker |
-m | 強制建立家目錄 (預設行為) | |
-M | 不建立家目錄 | |
-n | 不建立同名群組 (預設會建立) | |
-r | 建立系統帳號 (UID < 1000, 無家目錄) | |
-s Shell | 指定登入 Shell | -s /bin/bash |
-u UID | 指定 UID | -u 2000 |
userdel -r alice # -r 連同家目錄、信箱一併刪除

# 建立開發人員帳號:UID 2000、家目錄 /home/dev、加入 docker 群組、Shell zsh
useradd -u 2000 -m -d /home/dev -G docker -s /usr/bin/zsh -c "Developer Account" devuser
echo "DevPass2024!" | passwd --stdin devuser
# 驗證
id devuser
# uid=2000(devuser) gid=2000(devuser) groups=2000(devuser),999(docker)
ls -ld /home/dev
# drwx------ 2 devuser devuser 4096 Jan 15 10:00 /home/dev
[] 為參數佔位符,**實際輸入時勿包含方括號**openssl rand -base64 16 產生高強度隨機密碼/etc/passwd、/etc/shadow 異常帳號