如何更改輸入錯誤密碼後出現的延遲?

如何更改輸入錯誤密碼後出現的延遲?

在登入提示字元下輸入錯誤密碼後,會出現約 3 秒的延遲。如何在 Linux 系統上使用 PAM 來更改它?

答案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模組負責對/etc/passwd和執行身份驗證/etc/shadow。如果您使用 LDAP 或其他密碼後端,您可能仍然應該進行設置,nodelay因為pam_unix.so這是控制提示的內容(當pam_unix.so身份驗證失敗時,它通常只是將獲得的密碼傳遞到下一個模組)。

您可以pam_unix.so透過執行以下操作來閱讀更多信息man pam_unix

相關內容