Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux usermod 指令詳解:修改用戶帳號屬性 (家目錄、Shell、群組、UID、鎖定/解鎖)

編輯:Linux 教學

usermod 是修改現有用戶帳號屬性的標準指令,支援家目錄、登入 Shell、主/附屬群組、UID、帳號名稱、密碼鎖定/解鎖、過期日期等屬性變更。

語法格式

usermod [選項] 登入名

核心選項完整表

選項功能範例
-c "註解"修改 GECOS 註解 (通常為真實姓名)usermod -c "Zhang San" zhangsan
-d /new/home修改家目錄 (需搭配 -m 移動現有內容)usermod -d /home/newuser -m user
-e YYYY-MM-DD設定帳號過期日期 (空值為永不過期)usermod -e 2025-12-31 user
-f 天數密碼過期後寬限天數 (-1 為永不鎖定)usermod -f 30 user
-g group修改**主群組** (GID)usermod -g developers user
-G group1,group2修改**附屬群組** (覆蓋原有,慎用)usermod -G docker,wheel user
-aG group新增**附屬群組** (保留原有,推薦)usermod -aG docker user
-l newname修改登入名稱 (家目錄不自動改名)usermod -l newuser olduser
-L鎖定密碼 (在 /etc/shadow 密碼前加 !)usermod -L user
-U解除鎖定usermod -U user
-s /bin/bash修改登入 Shellusermod -s /bin/zsh user
-u UID修改 UID (需手動同步檔案擁有者)usermod -u 2000 user
-p "加密密碼"直接設定加密密碼 (極不推薦,明文風險)-
-o允許 UID 重複 (配合 -u,特殊需求)-
-Z修改 SELinux 用戶映射usermod -Z staff_u user

常用組合範例

# 1. 修改家目錄並移動檔案
usermod -d /home/newhome -m username

# 2. 將用戶加入 docker 群組 (保留原群組)
usermod -aG docker username

# 3. 鎖定帳號 (禁止登入)
usermod -L username

# 4. 修改 Shell 為 zsh
usermod -s /bin/zsh username

# 5. 修改 UID 並同步檔案權限 (需 root)
usermod -u 2000 username
find / -user 1000 -exec chown -h 2000 {} \;  # 舊 UID 為 1000

注意事項

  • 修改 UID/GID 後,**必須同步檔案系統擁有者**,否則檔案顯示數字 ID。
  • -G 不加 -a 會**覆蓋**所有附屬群組,生產環境慎用。
  • 鎖定帳號 (-L) 僅阻擋密碼登入,SSH 金鑰登入仍可能生效 (視 PasswordAuthentication 設定)。
  • 用戶正在登入時修改家目錄/Shell/UID 可能導致異常,建議登出後操作。
  • 配合 chage 管理密碼過期策略:chage -l username 查看。

相關指令對照

任務指令
建立用戶useradd / adduser
刪除用戶userdel -r
修改密碼passwd
修改群組groupmod
查看用戶資訊id / finger / getent passwd
Copyright © Windows教程網 All Rights Reserved