FlossDoc: 請協力 GPLv3 的中文翻譯工作。
強迫使用者定期更改密碼
FlossDoc,自由中文開源知識庫
現時的 GNU/Linux 大都使用 shadow password,我們可以使用 chage 命令來為使用者的密碼設定一個有效期,系統在過了此有效期後會強迫使用者更改密碼。
目录 |
設定密碼最長有效期
超級使用者 root 可以使用命令 chage -M 日數 使用者 或 chage --maxdays 日數 使用者 來為個別使用者密碼設定一個最長有效日數:
chage -M 90 johndoe
以上命令將使用者 johndoe 的密碼最長有效期設定為 90 日。當使用者登入時,如果其密碼最後更改的日期離登入日子超過所設定的密碼最長有效期 (例子為 90 日) ,使用者必定要即時更改密碼才可登入。
esmail login: johndoe Password: You are required to change your password immediately (password aged) Changing password for johndoe. (current) UNIX password: _
一般使用者預設是沒有密碼最長有效期的,即是說他們的密碼可以永久不用更改。當然,定期更改密碼對系統會比效安全。如果您己設定了密碼最長有效期,可以使用命令 chage -M -1 使用者 或 chage --maxdays -1 使用者 來取消:
chage -M -1 johndoe
設定密碼最短有效期
超級使用者 root 可以使用命令 chage -m 日數 使用者 或 chage --mindays 日數 使用者 來為個別使用者密碼設定一個最短有效日數:
chage -m 5 johndoe
以上命令將使用者 johndoe 的密碼最短有效期設定為 5 日。當使用者企圖更改密碼,系統會檢查其密碼最後更改的日期。如果離當日小於所設定的密碼最短有效期 (例子為 5 日) ,系統會拒絕使用者更改密碼。
$ passwd (current) UNIX password: You must wait longer to change your password passwd: Authentication token manipulation error passwd: password unchanged $ _
一般使用者的密碼最短有效期預設為 0,即使用者可以隨時更改密碼。如果您己設定了密碼最短有效期,可以使用命令 chage -m 0 使用者 或 chage --mindays 0 使用者 來取消:
chage -m 0 johndoe
設定使用者不活躍限期
當使用者的密碼超過其最長有效期,系統會在其登入時強迫他更改密碼才可以登入和工作。作為超級使用者 root 的您亦可以設定一個限期使用者要在多少日內登入和更改密碼,否則停用使用者帳戶。超級使用者 root 使用命令 chage -I 日數 使用者 或 chage --inactive 日數 使用者 或 usermod -f 日數 使用者 來為個別使用者設定一個不活躍限期:
chage -I 3 johndoe
以上命令將使用者 johndoe 的不活躍限期設定為 3 日。當使用者的密碼而超過 chage -M 所設定的最長有效期,而使用者在不活躍限期 (例子為 3 日) 內未有更改密碼並成功登入,系統將視使用者為不活躍並停用該使用者帳戶。帳戶被停用後,使用者將無法登入,必須絡聯並要求系統管理員開通帳戶。
一般使用者預設是沒有不活躍限期的,即是說他們可以隨時登入更改密碼。當然,設定不活躍限期對系統會比效安全。如果您已設定了不活耀限期,可以使用命令 chage -I -1 使用者 或 chage --inactive -1 使用者 來取消:
chage -I -1 johndoe
設定密碼有效期警告日數
一般 GNU/Linux 都會預設使用者密碼有效期警告日數為 7,即在密碼最長有效期截止前 7 日,每次使用者登入都會發出密碼有效期將過的警告,要求使用者盡快更改密碼。
esmail login: johndoe Password: Warning: you password will expire in 5 days Last login: Thu Jun 29 20:05:27 HKT 2010 on tty1
超級使用者 root 可以使用命令 chage -W 日數 使用者 或 chage --warndays 日數 使用者 來為個別使用者密碼設定密碼有效期警告日數:
chage -W 5 johndoe
設定密碼最後更改日期
使用者密碼每次被更改時,系統都會把當日日期記錄在 /etc/shadow 檔案中,讓其可以計算密碼最長和最短有效期、警告日子和使用者不活躍限期等。作為超級使用者 root 的您其實亦可以使用命令 chage -d 日期 使用者 或 chage --lastday 日期 使用者 來設定個別使用者的最後更改日期 (日期的格式一般為 YYYY-MM-DD):
chage -d 2010-01-01 johndoe
查看設定
超級使用者或一般使用者亦可以使用命令 chage -l 使用者 或 chage --list 使用者 來查看個別使用者或自己帳戶的密碼有效期設定:
$ chage -l johndoe Last password change : May 02, 2010 Password expires : Jul 31, 2010 Password inactive : Aug 03, 2010 Account expires : never Minimum number of days between password change : 3 Maximum number of days between password change : 90 Number of days of warning before password expires : 7
開通因不活躍而被停用的帳戶
如前所述,當某使用者的密碼過期,而他又沒有在不活耀期限內登入並更改密碼,系統將視他為不活躍使用者並停用其使用者帳戶。他必須絡絡並請求系統管理員開通其帳戶才可以登入工作。作為超級使用者 root 的您如果收到這類請求,一般有以下兩種方法開通帳戶:
- 使用
passwd 使用者命令為使用者重新設定一個初始密碼,密碼的最後更改日期將被自動更新為當日,密碼有效期等設定將會從新計算。唯使用者需要使用您設定的初始密碼登入。 - 使用
chage -d 日期 使用者改變使用者的密碼最後更改日期,使用者可以使用其舊密碼登入。
請參看
外部連結
- GNU/Linux Manpage: chage(1) - change user password expiry information


[SuSE][OpenSuSE] - GNU/Linux 中的 chage(1) 說明文件
- GNU/Linux Manpage: usermod(8) - Modify a user account


[SuSE][OpenSuSE] - GNU/Linux 中的 usermod(8) 說明文件
- BeginLinux: Expire User Accounts (Miki 2010-06-21)

