Pada sistem linux modern, alasannya adalah pam_unix.so memaksakan penundaan seperti itu. Seperti dilaporkan sebelumnya, ini dapat dikonfigurasi ke dua detik dengan mengubah FAIL_DELAY
di /etc/login.defs
. Jika Anda ingin mengurangi penundaan lebih lanjut, Anda harus memberikan pam_unix.so opsi "nodelay". Misalnya, pada sistem saya, jika Anda melacak menyertakan mulai dari /etc/pam.d/sudo
, Anda harus mengedit baris berikut /etc/pam.d/system-auth
:
auth required pam_unix.so try_first_pass nullok
dan ubah ke ini:
auth required pam_unix.so try_first_pass nullok nodelay
Sayangnya, cara distro linux saya (arch) mengkonfigurasi hal-hal, system-auth
file yang sama akan dimasukkan oleh system-remote-login
, yang digunakan oleh sshd.
Meskipun aman untuk menghilangkan penundaan pada sudo, karena itu dicatat, hanya digunakan oleh pengguna lokal, dan bisa dilewati oleh penyerang lokal, Anda mungkin tidak ingin menghilangkan penundaan ini untuk login jarak jauh. Tentu saja Anda dapat memperbaikinya dengan menulis sudo khusus yang tidak hanya menyertakan file auth sistem bersama.
Secara pribadi, saya pikir keterlambatan pada sudo (dan mengabaikan SIGINT) adalah kesalahan besar. Ini berarti pengguna yang tahu bahwa mereka salah mengetik kata sandi tidak dapat menghentikan proses dan menjadi frustrasi. Tentu saja, Anda masih dapat menghentikan sudo dengan Ctrl-Z, karena sudo tidak menangkap SIGTSTP, dan setelah menghentikannya Anda dapat membunuhnya dengan kill -9 (SIGKILL). Itu hanya menjengkelkan untuk dilakukan. Jadi itu berarti serangan otomatis dapat menembakkan sudo pada terminal semu dengan kecepatan super tinggi. Tetapi penundaan itu membuat frustasi pengguna yang sah dan mendorong mereka untuk menangguhkan shell root mereka alih-alih keluar dari mereka untuk menghindari keharusan sudo lagi.