私はググってみて、このようないくつかのリンクを見つけました: Red Hatでのパスワードの複雑さの強制
Linuxでパスワードの複雑さを強制する方法
これは、/etc/pam.d/system-auth
ファイルを変更する必要があることを示しています。パスワードの複雑さを強制するためのパラメーターを設定してから、新しいユーザーを作成しようとしましたが、私が設定したルール(最小文字数、大文字の最小数、必要な数字の最小数など)によって、これらのルールに従わないパスワード。
私を助けて、これを達成する方法を教えてください。
minlen=8 ucredit=1 dcredit=1 ocredit=0 lcredit=0
パスワードは8文字以上にし、大文字を1文字、数字を1文字以上含める必要があると思います。もしそうなら、それはあなたが設定したものではありません。
そのためには、minlen=8 ucredit=-1 dcredit=-1
を使用する必要があります。
説明:minlenアルゴリズムは、「クレジット」を使用して長さの値を決定します。 6文字のパスワードがあるとします。 minlengthは6以上になります。その後、任意のクレジット値を使用すると、小文字を使用するための1つの「クレジット」、大文字を使用するための1つのクレジットなどが得られます。したがって、Hello!
のパスワードは6文字で、大文字を使用する場合は+1、小文字を使用する場合は+1、特殊文字を使用する場合は+1であり、合計minlen値は9です。
同じパスワードでucredit=1 dcredit=1 ocredit=0 lcredit=0
を指定すると、長さは6、+ 1は大文字、0は小文字、0は特殊文字、7は長さ7になります。大文字を使用する必要はありません。
クレジットに負の数を使用する場合、少なくともその数が必要であり、クレジットは使用しません。
そのため、minlength=8 ucredit=-1 dcredit=-1 ocredit=0 lcredit=0
では、パスワードを8文字以上にし、少なくとも1つの大文字と1つの数字を含める必要があります。したがって、helloboy
のパスワードは8文字ですが、失敗します。 Hellob0y
は合格します。 He$$ob0y
も通過します。
Ssh経由でログインする場合、/etc.pam.d/sshd
ポリシーファイルが使用されます。このファイルには/etc/pam.d/system-auth
が含まれており、両方のファイルの内容を考慮する必要があります。
/bin/login
経由でログインすると、ファイル/etc/pam.d/login
が使用されるため、このファイルに加えた変更は/bin/login
にのみ影響します。
したがって、/etc/pam.d/system-auth
と/etc/pam.d/login
の両方のファイルを変更する必要があるかもしれません。または、パスワードの複雑さを強制するものを変更します。