passwd 是 Linux 系統修改使用者密碼與帳號有效期的核心指令。本文完整整理其語法、參數、相關檔案、返回碼與常用範例,助您精準掌握帳號安全管理。
passwd [options] [LOGIN]
| 短參數 | 長參數 | 說明 |
|---|---|---|
| -a | --all | 搭配 -S 顯示所有使用者狀態 |
| -d | --delete | 刪除使用者密碼(使帳號無密碼) |
| -e | --expire | 強制密碼立即過期,下次登入必須變更 |
| -h | --help | 顯示說明並結束 |
| -i | --inactive INACTIVE | 帳號過期 INACTIVE 天後鎖定,無法登入 |
| -n | --mindays MIN_DAYS | 密碼變更最小間隔天數(0 表隨時可改) |
| -S | --status | 顯示帳號狀態(7 欄位:登入名、鎖定狀態、最後變更日、最小/最大天數、警告天數、非活躍天數) |
| -w | --warndays WARN_DAYS | 密碼過期前 WARN_DAYS 天發出警告 |
| -x | --maxdays MAX_DAYS | 設定密碼最大有效天數 |
/etc/passwd:使用者帳號基本資訊/etc/shadow:加密密碼與有效期資訊(需 root 讀取)/etc/pam.d/passwd:PAM 認證模組設定| 碼值 | 含義 |
|---|---|
| 0 | 成功 |
| 1 | 權限拒絕 |
| 2 | 參數組合無效 |
| 3 | 未知錯誤,未執行任何操作 |
| 4 | passwd 檔案遺失 |
| 5 | passwd 檔案被鎖定,請重試 |
| 6 | 參數值無效 |
# 修改自身密碼
passwd
# root 查看所有使用者密碼狀態
passwd -S -a
# 強制使用者 user1 下次登入必改密碼
passwd -e user1
# 設定 user1 密碼最長 90 天、最短 7 天、過期前 14 天警告
passwd -x 90 -n 7 -w 14 user1
# 鎖定 user1 帳號(刪除密碼)
passwd -d user1
passwd 不僅是改密碼工具,更是帳號生命週期管理的關鍵指令。善用 -x、-n、-w、-i 等參數,可落實密碼政策,提升系統安全性。