間違ったパスワードを入力した後で発生する遅延を変更するにはどうすればよいですか?

間違ったパスワードを入力した後で発生する遅延を変更するにはどうすればよいですか?

ログイン プロンプトで間違ったパスワードを入力すると、約 3 秒の遅延が発生します。PAM を備えた Linux システムでこれを変更するにはどうすればよいですか?

答え1

Linuxとpamを使っていると思います。遅延の原因はおそらくpam_faildelay.so/etc/pam.d.を使用して、PAM 構成を確認しますpam_faildelay。例:

# 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

答え2

nodelayにパラメータを渡す必要がありますauth pam_unix.so

認証方法に応じて、パラメータを設定する場所が異なります。ただしほとんど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に対して認証を実行します。LDAP またはその他のパスワード バックエンドを使用している場合は、プロンプトを制御するのは であるため、を設定する必要があります (が認証に失敗した場合、通常は取得したパスワードを次のモジュールに渡すだけです)。/etc/passwd/etc/shadownodelaypam_unix.sopam_unix.so

pam_unix.so詳しくは以下をご覧くださいman pam_unix

関連情報