sudo
no oculta la entrada completamente debido a un supuesto beneficio de seguridad, sino porque es mucho más sencillo de hacer en el contexto de un terminal Unix. Una aplicación de línea de comandos de Unix normalmente recibe la entrada del usuario por líneas enteras (no se envía nada al código de la aplicación hasta que se presiona la tecla "Enter"); ocultar la entrada es solo una cuestión de decirle al terminal que no muestre los caracteres escritos, con una llamada tcsetattr()
(por ejemplo, ver esta respuesta ). Para mostrar estrellas para cada carácter ingresado, sudo
tendría que hacer algunas cosas más complicadas, es decir, configurar el terminal en modo "raw" o "cbreak" (consulte esta página para algunos detalles); sudo
tendría que implementar la edición de líneas en sí misma (manejo de la tecla de retroceso, o Ctrl-U para borrar la entrada completa, por ejemplo).
Aunque oculta completamente la entrada oculta la contraseña longitud , esta información todavía está disponible para los espectadores, que pueden usar sus oídos en lugar de sus ojos: en lugar de contar las estrellas en la pantalla, pueden contar la tecla presiona Por lo tanto, el supuesto beneficio de seguridad de la ocultación completa sería, en el mejor de los casos, muy leve.
La visualización de las estrellas hace que la experiencia del usuario sea mucho mejor, en particular las personas con teclados ligeramente inestables, en los que se puede "perder" una pulsación de una tecla o duplicarla involuntariamente.