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。

延伸閱讀