強制的に変更せずにパスワードの有効期限に関する警告

強制的に変更せずにパスワードの有効期限に関する警告

これはとても簡単です。/etc/login.defsand / orの変化の組み合わせが何であるかを知りたいです/etc/pam.d/system-auth-ac。次の動作を許可するには実装する必要があります。

  • ユーザーのパスワードを60日間有効にしたいと思います。

  • 60日が経過すると、システムはユーザーがログインすると音を鳴らし、できるだけ早くパスワードを変更する必要があることを知らせる必要があります。

  • システムはユーザーのシステムアクセスを妨げてはいけません。

  • これは、既存のユーザー(非システムアカウントUID >=500)だけでなく、新しく作成されたユーザーにも適用する必要があります。

理由:制限されたユーザーはシステムアカウントのパスワードを管理できず、システム管理者のみが管理できます。したがって、管理者がパスワードの変更を見逃してユーザーがシステムにアクセスするのをブロックしてはいけません。アカウント数はかなり少ないですが(9個または10個ほど)私たちは皆人間なので、時々やるべきことを忘れてしまいます。

login.defsこれを提供するのか、それを提供しているのかわかりませんPAM。文書を見ると、システムはパスワードが期限切れになったときにパスワードを変更するよう強制したり、パスワードがまったく期限切れにならないようにすることができると信じています。 3番目のオプションは、パスワードの使用期間を9,999日などの大きな値に設定してから、ユーザーに9,936日後にパスワードが期限切れになるという警告を開始することです。しかし、これは実際に必要なものではありません。私は他の種類の設定を行ったPAMので、これがブロックの周りを初めて旅行するわけではありません。私はこの問題に固執しました。

PAMそれでは、/を使ってこれを行うことができますか?login.defsそれともそれを置き換えるには他のユーティリティが必要ですか?

ベストアンサー1

カスタムスクリプトの使用に反対しない場合は、次のようにしてみてください。pam_execスクリプト:

#! /bin/bash
LAST_DATE=$(date -d "$(chage -l $PAM_USER  | awk -F: '/Last password/{print $2}')" '+%s')
TODAY=$(date '+%s')
MAX_AGE=60
if (( (($TODAY - $LAST_DATE) / 86400) > $MAX_AGE ))
then
    echo "Please change your password!"
fi

どこか/usr/local/bin/pass-warn.shに保存し、次の行を追加します/etc/pam.d/sshd

session optional pam_exec.so stdout /usr/local/bin/pass-warn.sh

おすすめ記事