ログインが失敗するたびにシェルスクリプトを実行したいと思います。そのためにファイルを更新しました/etc/pam.d/common-auth
。オリジナルテキスト:
auth required pam_env.so
auth required pam_unix2.so
到着する:
auth required pam_env.so
auth sufficient pam_unix2.so
auth optional pam_exec.so seteuid /root/handle_failure.sh
ほとんどのPAMサービス(SSH、Active Directoryなど)では機能しますが、問題はログインサービスにあります。間違ったパスワードを入力するとスクリプトが実行されますが、ログインも成功します。pam_unix2
フラグを必須から十分に変更した結果、モジュールは無視されるようです。
この問題を解決するために、PAM設定を新しい設定である新しいボディに変更することにしました/etc/pam.d/common-auth
。
auth required pam_env.so
auth [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_unix2.so
auth optional pam_exec.so /root/handle_failure.sh
auth optional pam_exec.so /bin/true
期待どおりに動作しますが、最後の行が気に入らないauth optional pam_exec.so /bin/true
。この行がないとログインは機能しません。なぜなら、それによると、success=1
私たちは一行をスキップし、何でもジャンプしたいのです。この設定を改善するより良い方法はありますか?