Sui moderni sistemi Linux, la ragione è che pam_unix.so impone un tale ritardo. Come precedentemente riportato, questo può essere configurato fino a due secondi cambiando FAIL_DELAY
in /etc/login.defs
. Se vuoi ridurre ulteriormente il ritardo, devi dare a pam_unix.so l'opzione "nodelay". Ad esempio, sul mio sistema, se si tracciano le inclusioni a partire da /etc/pam.d/sudo
, si scopre che è necessario modificare la seguente riga di /etc/pam.d/system-auth
:
auth required pam_unix.so try_first_pass nullok
e cambiarlo in questo:
auth required pam_unix.so try_first_pass nullok nodelay
Sfortunatamente, il modo in cui la mia distribuzione Linux (arch) configura le cose, system-auth
viene incluso lo stesso file system-remote-login
, che viene usato da sshd.
Sebbene sia sicuro eliminare il ritardo su sudo, poiché è registrato, utilizzato solo dagli utenti locali e comunque aggirabile dagli attaccanti locali, probabilmente non si desidera eliminare questo ritardo per gli accessi remoti. Ovviamente puoi risolverlo scrivendo un sudo personalizzato che non include solo i file condivisi di autenticazione del sistema.
Personalmente, penso che il ritardo su sudo (e ignorando SIGINT) sia un grosso errore. Significa che gli utenti che sanno di aver sbagliato a digitare la password non possono interrompere il processo e sentirsi frustrati. Ovviamente, puoi ancora fermare sudo con Ctrl-Z, poiché sudo non cattura SIGTSTP e dopo averlo fermato puoi ucciderlo con kill -9 (SIGKILL). È solo fastidioso da fare. Ciò significa che un attacco automatizzato potrebbe innescare un sudos su pseudo-terminali a un ritmo super elevato. Ma il ritardo frustra gli utenti legittimi e li incoraggia a sospendere le loro shell root invece di uscire da loro per evitare di dover ripetere l'operazione.