在登入提示字元下輸入錯誤密碼後,會出現約 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