## 預設 在未設定密碼有效期前於 RHEL 中建立帳號時,預設密碼有效期皆為 99999 天,The Center for Internet Security (CIS) 為了安全性建議密碼最好低於 365 天。 ## /etc/login.defs 我們可以在 `/etc/login.defs` 中設置新建立的帳號需遵守的密碼有效期。 ``` # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_MIN_LEN Minimum acceptable password length. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 ``` 但在此設置並不會修改已建立的帳號。 ## /etc/shadow 在 `/etc/shadow` 中可以看到所有的帳號和密碼有效期先關的設定,但不是非常的直觀。 ``` kurt:*:19619:7:90:7::: ``` ## chage 使用 `chage` 指令就能對各個帳號作設置,也可以 show 出各個帳號目前的設置。 ``` $ chage --list kurt Last password change : Sep 19, 2023 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7 $ chage --mindays 7 --maxdays 90 --warndays 7 kurt $ chage --list kurt Last password change : Sep 19, 2023 Password expires : Dec 18, 2023 Password inactive : never Account expires : never Minimum number of days between password change : 7 Maximum number of days between password change : 90 Number of days of warning before password expires : 7 ``` 設置後可以很直觀的看出帳號的密碼有效期相關設定。