sudo
non nasconde l'input completamente a causa di un presunto vantaggio di sicurezza, ma perché è molto più semplice da fare nel contesto di un terminale Unix. Un'applicazione della riga di comando Unix riceve normalmente l'input dell'utente per linee intere (non viene inviato nulla al codice dell'applicazione finché non si preme il tasto "Invio"); nascondere l'input è solo questione di dire al terminale di non visualizzare i caratteri digitati, con una chiamata di tcsetattr()
(es. vedi questa risposta ). Per visualizzare le stelle per ogni carattere inserito, sudo
dovrebbe fare alcune cose più complicate, cioè impostare il terminale in modalità "raw" o "cbreak" (vedi questa pagina per alcuni dettagli); sudo
dovrebbe quindi implementare lo stesso editing di riga (gestione del tasto backspace o Ctrl-U per cancellare l'input completo, ad esempio).
Anche se nascondendo completamente l'input nasconde la password length , questa informazione è ancora disponibile per gli astanti, che possono usare le orecchie invece degli occhi: invece di contare le stelle sullo schermo, possono contare il tasto preme. Pertanto, il presunto vantaggio di sicurezza della completa occultazione sarebbe, nella migliore delle ipotesi, molto lieve.
La visualizzazione delle stelle offre un'esperienza utente molto migliore, in particolare le persone con tastiere leggermente sfalsate, in cui un tasto può essere "perso" o altrimenti duplicato involontariamente.