chage(change age)專門管理使用者帳號的**密碼與帳號過期策略**,是 Linux 系統安全強化的關鍵工具。
| 選項 | 長選項 | 說明 |
|---|---|---|
-d | --lastday | 設定最近一次密碼變更日期(YYYY-MM-DD) |
-E | --expiredate | 設定帳號過期日期(YYYY-MM-DD),過期後無法登入 |
-I | --inactive | 密碼過期後多少天鎖定帳號(-1 為不鎖定) |
-l | --list | 顯示帳號年齡與過期資訊(唯讀查詢) |
-m | --mindays | 兩次密碼變更最小間隔天數(0 可隨時改) |
-M | --maxdays | 密碼最大有效天數(99999 近似永久) |
-W | --warndays | 密碼過期前多少天開始警告 |
# 查看 forker 當前策略
chage -l forker
# 設定最後密碼變更日為未來日期(延長密碼有效期)
chage -d 3000-08-08 forker
# 設定密碼最長有效期 5 天(高安全環境)
chage -M 5 forker
# 設定帳號過期日(臨時帳號、實習生專用)
chage -E 2025-12-31 forker
# 設定密碼過期後 7 天鎖定帳號
chage -I 7 forker
# 設定密碼過期前 14 天警告
chage -W 14 forker
# 設定密碼最小變更間隔 1 天(防止用戶連續改密碼繞過歷史記錄)
chage -m 1 forker
chage 修改的資料最終寫入 /etc/shadow 對應欄位:
-d → 第 3 欄(最後修改日)-E → 第 8 欄(帳號失效日)-I → 第 7 欄(非活動天數)-m → 第 4 欄(最小間隔)-M → 第 5 欄(最大有效期)-W → 第 6 欄(警告天數)chage -E 0 -I -1 -M 99999 鎖定登入、無密碼過期-M 90 -W 14 -I 7 90 天強制換密、14 天預警、過期 7 天鎖定-M 30 -W 7 -I 3 更嚴格策略-E YYYY-MM-DD 設定專案結束日自動失效awk -F: '$3 > 90 {print $1}' /etc/shadow 找出超期未改密碼帳號執行 chage 需 root 權限;一般用戶可用 chage -l 查看自身資訊。