web-dev-qa-db-ja.com

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

ログインプロンプトで誤ったパスワードを入力した後、約3秒の遅延があります。 PAMを使用するLinuxシステムでこれを変更するにはどうすればよいですか?

32
Shawn J. Goff

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
21
Ulrich Dangel

nodelayパラメータをauthpam_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.sonodelayを設定する必要があります。これがプロンプトを制御するためです(pam_unix.soが認証に失敗した場合、通常は単に取得したパスワードを次のモジュールに渡します)。

pam_unix.soを実行すると、man pam_unixの詳細を確認できます

11
Patrick