ここでの要件は、ユーザーが新しいパスワードを設定するときに、最後に使用した 10 個のパスワードを再度使用してはならないということです。ユーザーが過去 10 回使用されたパスワードを設定しようとすると、以下のエラーが表示されます:
Changing password for user test. New UNIX password: Retype new UNIX password: Password has been already used. passwd: all authentication tokens updated successfully.
これは、ユーザーが有効期限が切れるたびに新しいパスワードを設定し続けるため、パスワードがハッキングされないようにするためのセキュリティ対策です。以下の手順に従って、パスワードにこの制限を設定してください。
1. ファイル /etc/pam.d/system-auth を変更します pam モジュール pam_pwhistory が含まれるように パスワード必須行の最初の出現の後:
# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password requisite pam_pwhistory.so debug use_authtok remember=10 retry=3 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
2. ここで、ユーザーのパスワードを変更してみます。
# passwd test [Enter already used password]
これで、パスワードが過去に使用されていることを示すエラーがシステムからスローされることがわかります。
Changing password for user test. New UNIX password: Retype new UNIX password: Password has been already used. passwd: all authentication tokens updated successfully.