บนระบบ linux ที่ทันสมัยเหตุผลก็คือ pam_unix.so กำหนดความล่าช้าดังกล่าว ในฐานะที่เป็นรายงานก่อนหน้านี้สามารถกำหนดค่าลงไปสองวินาทีโดยการเปลี่ยนแปลงในFAIL_DELAY
/etc/login.defs
หากคุณต้องการลดความล่าช้าอีกคุณต้องให้ pam_unix.so ตัวเลือก "nodelay" ตัวอย่างเช่นในระบบของฉันหากคุณติดตามการรวมเริ่มต้นจาก/etc/pam.d/sudo
คุณจะพบว่าคุณต้องแก้ไขบรรทัดต่อไปนี้/etc/pam.d/system-auth
:
auth required pam_unix.so try_first_pass nullok
และเปลี่ยนเป็น:
auth required pam_unix.so try_first_pass nullok nodelay
แต่น่าเสียดายที่ทาง Linux distro ของฉัน (ซุ้มประตู) กำหนดค่าสิ่งที่เดียวกันมากsystem-auth
ไฟล์ได้รับโดยรวมsystem-remote-login
ซึ่งจะถูกใช้โดย sshd
แม้ว่าจะปลอดภัยในการขจัดความล่าช้าใน sudo เนื่องจากมีการบันทึกไว้ใช้งานโดยผู้ใช้ภายในเท่านั้นและผู้โจมตีในพื้นที่สามารถเลี่ยงผ่านได้คุณอาจไม่ต้องการกำจัดความล่าช้านี้สำหรับการเข้าสู่ระบบจากระยะไกล แน่นอนคุณสามารถแก้ไขได้ด้วยการเขียน sudo แบบกำหนดเองที่ไม่เพียง แต่รวมไฟล์ auth ระบบแชร์
โดยส่วนตัวแล้วฉันคิดว่าความล่าช้าในการ sudo (และไม่สนใจ SIGINT) เป็นความผิดพลาดครั้งใหญ่ หมายความว่าผู้ใช้ที่รู้ว่าพวกเขาพิมพ์รหัสผ่านผิดพลาดจะไม่สามารถฆ่ากระบวนการและทำให้ผิดหวัง แน่นอนคุณยังสามารถหยุด sudo ด้วย Ctrl-Z ได้เนื่องจาก sudo ไม่ได้จับ SIGTSTP และหลังจากหยุดคุณสามารถฆ่ามันด้วย kill -9 (SIGKILL) มันน่ารำคาญที่จะทำ นั่นหมายความว่าการโจมตีอัตโนมัติสามารถยิงซูโดะออกไปยังเทอร์มินัลหลอกได้ในอัตราที่สูงมาก แต่ความล่าช้านั้นทำให้ผู้ใช้ที่ชอบด้วยกฎหมายและกระตุ้นให้พวกเขาหยุดการทำงานของรูทเชลล์แทนการออกจากพวกเขาเพื่อหลีกเลี่ยงการต้องทำ sudo อีกครั้ง