これはとても簡単です。/etc/login.defs
and / 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