RedHat Linux で過去に使われたパスワードの使用を制限する方法は次の通り。
/etc/pam.d/system-auth でパスワードについての設定行を以下のように変更する。
過去 2 回の内に使用したパスワードを使えないように設定するために、
remenber=2 を追記する。
○変更前
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
○変更後
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=2
これにより、以下のような動作となる。
ある一般ユーザが過去に次の順番でパスワードを使用したとする。
パスワードA
パスワードB
パスワードC
パスワードD
現在はパスワードDを使用中。
この状態で passwd コマンドで次の順番でパスワード変更を試して、
過去何回分のパスワードが禁止されるかを確認する。
パスワードC ×
パスワードB ×
パスワードA ○
remember=2 と指定したので、過去 2 回分のパスワードの使用が
禁止されていることが確認できた。
ちなみに、禁止範囲のパスワードに変更しようとした際のエラーメッセージは
以下の通り。
BAD PASSWORD: has been already used
過去のパスワードは /etc/security/opasswd に保管される。
もちろん暗号化されている。
過去のパスワード履歴を初期化したい場合は、
/etc/security/opasswd に /dev/null を書き込んで空にすれば良い。
# cat /dev/null > /etc/security/opasswd