usermod — 修改使用者帳號
修改現有使用者帳號的屬性,如群組、Shell、家目錄等。
語法
usermod [選項] 使用者名稱
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-aG 群組,... |
將使用者加入額外群組(-a 必須搭配 -G,否則會取代現有群組) | usermod -aG sudo,docker alice |
-G 群組,... |
設定使用者的所有附加群組(會取代現有附加群組) | usermod -G developers alice |
-g 群組 |
更改主要群組 | usermod -g newgroup alice |
-s Shell |
更改登入 Shell | usermod -s /bin/zsh alice |
-d 目錄 |
更改家目錄(加 -m 同時搬移現有資料) | usermod -d /new/home -m alice |
-l 新名稱 |
更改登入名稱 | usermod -l newname alice |
-L, --lock |
鎖定帳號(無法登入) | usermod -L alice |
-U, --unlock |
解鎖帳號 | usermod -U alice |
-e 日期 |
設定帳號過期日期 | usermod -e 2026-12-31 alice |
使用範例
範例 1:將使用者加入 sudo 群組(最常用)
讓 alice 可以使用 sudo。-a 表示「附加」而非取代現有群組,非常重要。
$ sudo usermod -aG sudo alice
生效需要使用者重新登入。可用 groups alice 確認群組。
範例 2:加入 docker 群組(免 sudo 使用 docker)
將使用者加入 docker 群組,讓其可以不用 sudo 執行 docker 指令。
$ sudo usermod -aG docker $USER
範例 3:更改 Shell
將登入 Shell 從 bash 改為 zsh(需先安裝 zsh)。
$ sudo usermod -s /bin/zsh alice
範例 4:鎖定/解鎖帳號
暫時停用某個帳號而不刪除(如員工休假或離職但保留資料)。
$ sudo usermod -L alice # 鎖定\nsudo usermod -U alice # 解鎖
常見錯誤與排錯
usermod -G 後使用者失去原本的群組
- 原因
- 忘記加 -a 選項,直接用 -G 會取代(而非附加)所有附加群組。
- 解法
- 一定要用 usermod -aG(-a 附加),而非單獨的 -G。