El comando «sudo» es una de las herramientas más utilizadas en cualquier distribución Linux, especialmente en Ubuntu. Este comando nos permite ejecutar tareas administrativas desde la terminal de forma segura sin necesidad de iniciar sesión como «root». Desde hace décadas, al introducir la contraseña en este comando no se muestra ningún tipo de carácter en pantalla, una medida pensada para reforzar la seguridad y evitar que puedan adivinar la longitud de la misma. 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.
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.
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.
¿Es menos seguro mostrar asteriscos en sudo?
Es probable que nos preguntemos si mostrar los asteriscos al escribir la contraseña hace que el sistema operativo sea más o menos seguro. Hasta ahora, cuando introducimos una contraseña en la terminal, Linux no muestra ningún carácter en pantalla: ni puntos, ni asteriscos, ni ningún indicador visual. Esto se hizo así como una medida de seguridad para evitar que otras personas puedan deducir información sobre nuestra contraseña.
Mostrar por defecto el número de caracteres en SUDO no hace que el sistema pase a ser menos seguro, sino que lo que hace es que sea más intuitivo y accesible. Pero esa accesibilidad tiene un precio: y es que cualquiera que esté mirando la pantalla podrá saber cuántos caracteres tiene la contraseña simplemente contando los símbolos que aparecen al escribirla. Esto permite un vector de ataque llamado «shoulder surfing», y podría desencadenar en otros ataques más complejos (como, por ejemplo, fuerza bruta con un número determinado de caractreres).
Sin embargo, en la práctica, el impacto de mostrar los asteriscos suele ser muy limitado en entornos domésticos o personales. De hecho, muchas aplicaciones modernas, sistemas operativos y páginas web muestran puntos o asteriscos al escribir las contraseñas. Y eso no supone un problema grave de seguridad, sino que lo único que se revela es la longitud aproximada de la clave, pero nunca su contenido.
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.
