Si llevamos usando Linux desde hace años, seguro que hemos notado que, cuando tenemos que escribir la contraseña de sudo en un terminal, mientras escribimos no aparece nada: ni letras, ni asteriscos, ni puntos… solo el cursor parpadeando hasta que terminamos de escribir. Este comportamiento está pensado para que haya la mayor privacidad y seguridad a la hora de escribir la contraseña, y aunque más de una vez nos haya hecho dudar si la estamos escribiendo correctamente, al final es lo mejor. No obstante, esto podría cambiar en Ubuntu 26.04.
Linux está diseñado como un sistema «seguro por defecto», donde los usuarios tienen privilegios limitados y solo elevan privilegios cuando es necesario, como, por ejemplo, para instalar software, modificar archivos del sistema o acceder a directorios protegidos, entre otras muchas tareas.
A diferencia del modelo tradicional de Windows, donde el usuario suele pertenecer al grupo de administradores y eleva permisos mediante el control de cuentas (UAC), en Linux, su diseño de seguridad favorece el uso continuo de cuentas estándar con elevación puntual cuando es necesario mediante «sudo». El comando «sudo» (superuser do) nos permite precisamente eso, ejecutar desde nuestro propio usuario comandos con los permisos elevados sin cambiar de usuario de forma permanente. De esta forma, mantenemos el principio de mínimo privilegio y reducimos riesgos de seguridad.
Intento de eliminación del directorio /boot en terminal Linux
Cuando ejecutamos «sudo» en el terminal, Linux nos pide la contraseña. Esta es la contraseña de nuestro usuario (que debe estar previamente dentro del grupo de usuarios que pueden usar sudo). Al escribirla, no aparece ningún símbolo ni ningún carácter en la consola, lo cual es una medida de seguridad extra para evitar que alguien pueda deducir la longitud de nuestra contraseña simplemente mirando la pantalla. Y, al pulsar «Intro», si es correcta, se ejecuta el comando con privilegios de superusuario (root).
Esto ha sido siempre así por defecto en muchas distros, como Ubuntu. Sin embargo, con el aumento de usuarios que están viniendo a nuestros sistemas desde Windows, Canonical quiere simplificar el uso de su distro para evitar confusiones. Y, por ello, a partir de la próxima versión que llegará en abril de este mismo año, este comportamiento por defecto va a cambiar.
Mostrar asteriscos al escribir la contraseña en Ubuntu
Aunque por defecto los caracteres de la contraseña estaban ocultos, la función para mostrarlos existe desde siempre: pwfeedback. Esta función lo que hace es mostrar un asterisco por cada carácter que escribimos, confirmando que estamos introduciendo texto y permitiéndonos, por ejemplo, contar los caracteres para ver si nos hemos equivocado.
Podemos cambiar este comportamiento desde la configuración de «sudo». Escribimos en un terminal el comando «sudo visudo», introducimos la contraseña (aún sin los asteriscos), y dentro de la configuración tenemos que añadir esta línea:
Defaults pwfeedback
Guardamos los cambios, cerramos, y todo listo. Ahora, si volvemos a ejecutar algo con «sudo», podremos ver cómo nos aparecen los asteriscos al escribir la contraseña.
Ejemplo de comando sudo en terminal Linux con contraseña oculta
Aunque parece solo un pequeño cambio sin importancia, en realidad no lo es. Los usuarios avanzados ya conocerán de sobra la existencia de «pwfeedback», y podrán cambiar el comportamiento para ocultar los caracteres si quieren en apenas 5 segundos. Pero para los usuarios que empiezan a dar los primeros pasos dentro de Linux, el simple hecho de ver los caracteres que se escriben al introducir la contraseña da la sensación de ser un sistema mucho más accesible para todo el mundo.
sudo-rs, la alternativa más segura a sudo
El cambio de los asteriscos no es el único cambio que se prepara dentro de Linux relacionado con el comando «sudo». Desde hace tiempo se está trabajando en una nueva herramienta que podría cambiar completamente el comando del superusuario de Linux: sudo-rs.
sudo-rs es una reimplementación del clásico comando sudo, pero escrita completamente en Rust en lugar de en C. Esto es importante porque «sudo» es una herramienta crítica del sistema que se ejecuta con privilegios elevados y forma parte del núcleo de la seguridad. Y cualquier vulnerabilidad en su código puede tener consecuencias graves. Rust es un lenguaje diseñado para evitar errores de memoria, como desbordamientos de búfer o uso de memoria no inicializada, fallos que desde siempre han sido responsables de muchas vulnerabilidades en el software escrito en C.
Al reescribir esta herramienta clave por completo en Rust, se busca reducir la probabilidad de un ataque a través de una vulnerabilidad en «sudo» sin cambiar su funcionamiento externo. Eso sí, es importante tener en cuenta que sudo-rs no pretende reinventar la forma en la que usamos sudo, sino replicar su comportamiento con una base más moderna y segura.
De momento, el proyecto de sudo-rs sigue avanzando, pero el próximo Ubuntu 26.04 no va a ser quien sustituya el sudo tradicional por el nuevo sudo-rs. Eso sí, todo apunta a que el cambio tendrá lugar más pronto que tarde, aunque por ahora no hay confirmación oficial de cuándo podría adoptarse de forma generalizada.
Fuente: softzone
