ログインプロンプトで誤ったパスワードを入力した後、約3秒の遅延があります。 PAMを使用するLinuxシステムでこれを変更するにはどうすればよいですか?
LinuxとPAMを使用していると思います。遅延はおそらく pam_faildelay.so
が原因です。 /etc/pam.d
を使用してpam_faildelay
のpam設定を確認してください。例:
# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth optional pam_faildelay.so delay=3000000
時間を変更するには、遅延パラメータを調整します。遅延を取り除きたい場合は、完全な行を削除/コメント化できます。
遅延の別の原因は pam_unix.so
かもしれません。 pam_unix.so
による遅延を無効にするには、nodelay
パラメータを追加し、オプションでpam_faildelay.so
を呼び出す行を追加して、代わりに(変数)遅延を追加します。例:
auth optional pam_faildelay.so delay=100000
nodelay
パラメータをauth
pam_unix.so
に渡す必要があります。
認証方法に応じて、パラメーターを設定する必要がある場所は異なります。ただしmost linuxディストリビューションには、すべての異なるファイルに含まれる/etc/pam.d/system-auth
のようなものがあります。
したがって、たとえば/etc/pam.d/system-auth
では、次のような行があるとします。
auth sufficient pam_unix.so try_first_pass nullok
これは次のように変更する必要があります。
auth sufficient pam_unix.so try_first_pass nullok nodelay
pam_unix.so
モジュールは、/etc/passwd
および/etc/shadow
に対して認証を実行するモジュールです。 LDAPまたはその他のパスワードバックエンドを使用している場合は、pam_unix.so
にnodelay
を設定する必要があります。これがプロンプトを制御するためです(pam_unix.so
が認証に失敗した場合、通常は単に取得したパスワードを次のモジュールに渡します)。
pam_unix.so
を実行すると、man pam_unix
の詳細を確認できます