自分のコンピュータでログインが3回失敗した場合(sshではなく、誰かがターミナルでログインしようとした場合、または誰かが物理的にログインしようとした場合)、スクリプトを実行したいと思います。そして、スクリプトを実行する前の回数を設定できますか?
PAMを調べた結果、ファイルの.so
実行のみ可能で設定が面倒なようです。他のオプションがありますか?
私にとってもう一つのことは、ログインが失敗したときにLinuxがいくつかのスクリプトを実行する可能性があることです。その場合は、追加したりsh /var/myscript.sh
何かをすることができます。どんなアイデアがありますか?
インターネットのどこでもこの内容を扱うところが見つからないようです。スクリプトを実行できる場合すべてログインの試行に失敗した場合は、処理いたします。
答え1
大丈夫。私はそれについて考えた。誤ってシステムが壊れる可能性があるため、混乱しないように注意してください。これが不便な場合は、まず仮想マシンで試してみるのが最善です。
地図時間
- スクリプトを作成します。このチュートリアルではスクリプトをに入れます
/var/myscript.sh
。スクリプトパスをスクリプトがある場所に安全に置き換えることができます。いずれにせよ、ゼロ以外のコードでスクリプトが終了しないようにしてください。また、このコマンドをスクリプトexit 0
の最後に追加して、正しく終了することを確認してください。続行する前にスクリプトをテストしてください。 - スクリプトを実行可能にする
chmod +x /var/myscript.sh
- 実際の作業が始まる前に問題が発生した場合は、端末を開きます
sudo -i
。念のため窓を開けておいてください。 gksudo nano /etc/pam.d/common-auth
。nano
テキストエディタに置き換えることができます。バックアップするにはsudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bkup
- 次の行を探してください。
auth [success=1 default=ignore] pam_unix.so nullok_secure
- その行から
success=1
に変更してくださいsuccess=2
。これは、ログインが成功した場合にスクリプトが実行されないようにするためです。 - 手順5の行のすぐ下に次の行を追加します。
auth [default=ignore] pam_exec.so seteuid /var/myscript.sh
- 保存して閉じます。
- 再起動したり、「再ログイン」する必要はなく、新しい端末を開きます
su -l <username>
。 - 意図的に間違ったパスワードを入力した後、スクリプトが機能していることを確認してください。その後、手順9を再試行しますが、正しいパスワードを使用してください。ログインできることを確認してください。
生産スタッフ
特に素晴らしいドキュメントや投稿に感謝します。これ。