はじめに
Red Hat Enterprise Linux Serverではパスワードの最小文字数をminlenで指定できます。
本記事では同設定を変更した際にその制限に抵触するユーザの挙動を実機で確認しました。
コマンド実行環境
- Red Hat Enterprise Linux Server 7.5 (Maipo)
パスワードポリシーの変更
パスワードの最小文字数はPAMのminlenで設定します。以下に読み込む共有ライブラリ等が記載されていて
# cat /etc/pam.d/system-auth ... password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=8 password required pam_deny.so ...
設定ファイルは以下にあります。
# cat /etc/security/pwquality.conf ... minlen = 8 dcredit = -1 ucredit = 0 lcredit = -1 ocredit = 0
上記の場合は最小のパスワードは8なので8桁のパスワードが許容されています。
この値を以下のように変更すると設定は即時反映されます。
minlen = 9
パスワード8桁の既存ユーザでログインを試みる
問題なくログインできます。ログイン後、パスワードの変更も求められません。
# ssh testuser@testserver testuser@testserver's password: $
但し、パスワード変更を試みると8桁で設定すると以下のようにエラーとなります。
$ passwd Changing password for user testuser (current) UNIX password: New password: BAD PASSWORD: The password is shorter than 9 characters
よって次回ログイン時に強制的にパスワードを変更させるために以下コマンドを実施して期限切れにします。
# chage -d 0 testuser
そうしておけばログイン時に
# ssh testuser@testserver testuser@testserver's password: You are required to change your password immediately (root enforced) ... WARNING: Your password has expired. You must change your password now and login again! Changing password for user testuser ...
終わりに
パスワードのポリシーを変更した際、それが反映されるのは次回パスワード変更時となります。
よって「制限を超えたことで既存ユーザがログインできなくなることはない」というポイントは覚えておくと役立つと思います。
以上、ご参考になれば幸いです。