
私のAmazon Linux(RHEL派生)システムでは、/etc/login.defs:でパスワード変更間隔の最小日数を1日に設定しましたPASS_MIN_DAYS 1
。
これを行うには、/etc/pam.d/にあるPAM構成ファイルを使用する必要があると思います。ただし、この操作に関するドキュメントが見つかりません。 PAMを使用してパスワードを変更できるタイミングを制御する方法はありますか?それは何ですか?
答え1
ユーザー固有のパスワードポリシーを設定します。
lchage
1つのオプションは、コマンドを使用してユーザーパスワードポリシーを変更することです。
次のコマンドは、パスワード変更の間に必要な最小日数を設定します。
lchage --mindays=<days> <username>
次のコマンドを使用して現在のポリシーを表示できます。
lchage --list <username>
すべてのユーザーのための共通ポリシー:
システムのすべてのユーザーに共通のパスワードポリシーを設定するには、ファイル内の変数をPASS_MIN_DAYS
編集する必要があります/etc/login.defs
。
root@ubuntu:~# grep PASS_MIN_DAYS /etc/login.defs
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
PASS_MIN_DAYS 1
上記のgrepリストは、パスワード変更の間に必要な最小#日が1であることを示しています。
ユーザーが設定されている少なくとも#日より前にパスワードをリセットしようとすると、以下のエラーが表示されます。
$ passwd
Changing password for test.
(current) UNIX password:
You must wait longer to change your password
passwd: Authentication token manipulation error
passwd: password unchanged
ユーザーを作成すると、定義されたポリシーが作成された/etc/login.defs
ユーザーに適用されます。lchage --list
コマンドを使用して現在のポリシーを表示することもできます。
答え2
興味深い質問をしました。 login.defsのマニュアルページによると、pass_min_daysパラメータはアカウントを作成するときにのみユーザーに適用されるため、/etc/pam.dの変更は一貫性のために優れています。しかし、私が知っている限り、標準のpam_unixモジュール(少しpam_cracklib.soのようです)には日付関連のオプションはありません。また、chage
/etc/shadowを操作していますが、/etc/pam.d/には何もありません。
結局、PAMパラメータではこの値を管理できないというのが答えだと思います。