En Linux existe un usuario especial llamado root, también conocido como superusuario, que tiene control total sobre el sistema operativo. A diferencia de los usuarios normales, root puede modificar cualquier archivo, instalar o eliminar software del sistema, cambiar configuraciones críticas o gestionar las cuentas de otros usuarios.
Aunque muchas distribuciones modernas utilizan sudo para ejecutar comandos con privilegios elevados sin iniciar sesión como root, el superusuario sigue siendo una pieza fundamental en la administración del sistema. Entender qué es root, cómo funciona y cuándo usarlo correctamente es clave para trabajar con Linux de forma segura.
En esta guía vamos a ver qué es el usuario root en Linux, qué diferencia hay con sudo y su, cómo usarlo correctamente y cómo recuperar la contraseña si la has perdido.
Tipos de usuarios en Linux
Linux utiliza un sistema de permisos basado en usuarios. Cada cuenta tiene determinados privilegios, y el único usuario con control total del sistema es root. Básicamente, en Linux podemos encontrar 2 tipos de usuarios:
- Usuario. Los usuarios normales, son las cuentas de usuarios en las que se establecen una serie de limitaciones en base a sus necesidades y prioridades, sin tener la opción de realizar tareas administrativas reservadas a las cuentas root. Ese tipo de usuarios tienen limitadas las opciones a la hora de instalar aplicaciones o crear directorios en el sistema. Sin embargo, pueden obtener permisos root para realizar cualquier cambio a través de los comandos sudo o su.
- root. Este superusuario tiene poder y control absoluto sobre el equipo y puede hacer y deshacer a su antojo sin ningún tipo de limitación más allá de sus conocimientos. Este tipo de usuario es, si lo comparamos con Windows, el usuario administrador, aunque en Linux tenemos mucho más poder de decisión que en Windows.
Además de usuarios normales y root, Linux también usa «usuarios del sistema» para servicios (daemon), que suelen tener permisos muy restringidos.
Por defecto, los usuarios normales tienen permisos limitados en el sistema. Pero podemos darle permiso para que pueda ejecutar comandos que requieran privilegios elevados. Para ello, lo que haremos será añadir al usuario al grupo «sudo», lo que convierte a un usuario en administrador (sudoer). Podemos hacerlo con este comando (suponiendo que «softzone» es el usuario):
- sudo usermod -aG sudo softzone
Podemos comprobar que todo ha ido correcto ejecutando un comando que requiera de permisos elevados, como «sudo apt-get update» y viendo que nos pide la contraseña del usuario (no la de root) para ejecutar el comando.
Qué es root
El usuario root en Linux es el usuario que tiene acceso administrativo a todo el sistema y puede realizar cualquier tipo de modificación para modificar su funcionamiento. No es recomendable iniciar sesión con permisos root si no tenemos muy claro qué es lo que estamos haciendo, si no queremos poner en riesgo la estabilidad del sistema si efectuamos algún cambio.
Si queremos hacer algún cambio en el sistema, no hace falta iniciar sesión con un usuario con permisos de administrador. Lo que tenemos que hacer es pedir ese permiso utilizando el comando «sudo» para realizar tareas administrativas. El sistema nos pedirá la contraseña de nuestro usuario para confirmar que somos los legítimos usuarios de esa cuenta y no se trata de una tercera persona que ha tenido acceso a nuestro equipo. Y, tras validar, ejecutará la acción.
También podemos utilizar el comando «su» para cambiar al usuario «root» si necesitamos mantener en el tiempo los privilegios de superuser.
Para qué se usa
Ya hemos visto que el usuario root es esencial a la hora de trabajar con Linux, pero ¿nos queda claro concretamente para qué sirve? Hay muchos usos en los que es obligatorio echar mano de este usuario mágico. Vamos a ver algunos de los más relevantes.
- Instalar software. Se trata de uno de los usos del comando más esenciales. Y es que, por seguridad, siempre que vayamos a usar «apt», u otro gestor de paquetes, para instalar un programa, tendremos que ejecutarlo con este comando. Por ejemplo, «sudo apt install vlc».
- Editar archivos de configuración. Otro de los usos comunes de este comando es realizar configuraciones en programas o servicios del sistema. Como ya sabremos, muchas de estas configuraciones se llevan a cabo a través de archivos de texto. Por lo tanto, debemos usar «sudo» para abrir dichos archivos con un editor. Por ejemplo, «sudo nano /etc/hosts».
- Cambiar su contraseña. Si necesitamos cambiar la contraseña de root en Linux, igualmente tendremos que usar este comando. La forma de hacerlo es con «sudo passwd root».
- Ejecutar comandos peligrosos. Algunos comandos de Linux pueden ser peligrosos. Por ejemplo, con rm podemos eliminar archivos y directorios críticos del sistema. Por ello, antes de ejecutarse, deben asegurarse de que tenemos permiso para ello.
- Reiniciar o apagar. Por último, si vamos a usar los comandos «reboot» y «poweroff», también debemos tener permisos de superusuario para ello.
Siempre que tengamos un error al intentar hacer algo en Linux, seguramente podamos hacerlo sin problemas al ejecutarlo con permisos de root.
¿Cuándo utilizar «sudo» y cuándo utilizar «su»?
Una vez tenemos claro que es root y cuáles son las posibilidades de estas cuentas y las limitaciones de las cuentas de usuario, toca hablar de los comandos sudo y su, comandos que nos permite obtener permisos de administrador para realizar cambios en el sistema.
| Característica | sudo | su |
|---|---|---|
| Propósito | Ejecuta un comando específico con privilegios root | Cambia completamente al usuario root, abriendo una shell |
| Contraseña requerida | Contraseña del usuario actual | Contraseña de la cuenta root |
| Duración de los privilegios | Solo para ese comando específico (por defecto, Ubuntu recuerda la contraseña 15 minutos) | Hasta que salgas con exit o cierres la sesión |
| Cambio de entorno | No cambia el entorno del usuario | Mantiene o cambia el entorno según se use (`su` o `su -`) |
| Nivel de seguridad | Más seguro: acceso granular y limitado a comandos específicos | Menos seguro: acceso total al sistema |
| Auditoría | Los comandos se registran en `/var/log/auth.log` | No es posible rastrear directamente las acciones tras escalar a root |
| Flexibilidad | Permite limitar qué comandos específicos pueden ejecutar los usuarios mediante `/etc/sudoers` | Acceso total, sin restricciones |
| Uso recomendado | Tareas administrativas específicas y únicas. Preferido en la mayoría de distribuciones modernas | Cambiar de usuario temporalmente o solo cuando sea estrictamente necesario |
Sudo
Las cuentas de usuarios normales tienen limitada la posibilidad de instalar aplicaciones de fuera del sistema. El comando Sudo nos permite ejecutar un comando como root, es decir, con privilegios totales sobre el sistema, pero sin dejar de ser un usuario normal. Debemos acompañar esta palabra siempre antes de cualquier operación.
Por ejemplo, si queremos instalar una aplicación, como usuarios normales no podemos realizar este proceso. Pero, si utilizamos el comando sudo en primer lugar, vamos a obtener permisos root para realizar esa operación. Una vez se ha realizado, volveremos a tener las limitaciones asociadas a una cuenta de usuario normal. Siempre que utilicemos el comando Sudo, tendremos que introducir la contraseña del usuario.
sudo apt install gparted
Si queremos instalar otra aplicación, tendremos que preceder el comando, nuevamente, de la palabra sudo e introducir la contraseña de administrador.
Su
Mientras que Sudo nos permite obtener permisos de administrador para realizar determinadas tareas administrativas como instalar aplicaciones, crear usuarios y demás, una vez se ejecuta el comando, volvemos a ser usuarios normales. Si tenemos que realizar diversas operaciones en el equipo para las que sean necesarios privilegios de administrador, y no queremos añadir sudo en cada comando, haremos uso de su e introducimos la contraseña root.
su
A partir de este momento, tenemos privilegios root, por lo que podemos hacer cualquier cambio en el sistema sin necesidad de utilizar sudo. Siendo el ejemplo anterior, para instalar la aplicación Gparted, una vez tenemos permisos root, en lugar de preceder el comando de instalación de la palabra sudo, podemos hacerlo sin ella.
apt install gparted
Podemos ver si realmente estamos como» root» ejecutando el comando «whoami» o «id -u» y ver si nos devuelve «root» o «0» respectivamente. Si devuelve valores diferentes, no seremos superusuarios.
Cuando hemos dejado de necesitar privilegios root, es recomendable salir de este modo para evitar realizar cualquier cambio de forma no intencionada, se utiliza el comando exit.
exit
Si queremos cambiar de usuario, el comando a utilizar es el siguiente.
su nombrecuentausuario
Mostrar los asteriscos al escribir la contraseña en Ubuntu
Desde hace tiempo, cuando vamos a escribir la contraseña de «sudo» para usar los permisos de root en Linux, los caracteres de la contraseña están ocultos. Esto se planeó así como una medida de seguridad que impidiera a terceras personas que pudieran mirar la pantalla adivinar la longitud de la clave. Aunque toda seguridad es buena, en la práctica tampoco aporta mucha más seguridad, y para muchos usuarios genera más problemas de usabilidad que mejora de seguridad real.
Ubuntu 26.04 LTS va a cambiar esto, y será la primera versión en mucho tiempo que volverá a mostrar los caracteres de la contraseña de «sudo». Sin embargo, esta posibilidad ha estado presente en Linux desde siempre, gracias a un parámetro conocido como «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.
Para activarlo, lo que tenemos que hacer es cambiar la configuración por defecto de sudo a través de la herramienta «visudo». Así, lo que tenemos que hacer es abrir una terminal, y ejecutar en ella el siguiente comando:
sudo visudo
Ahora, dentro de la configuración, lo que haremos será añadir la siguiente 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.
En caso de querer ocultar de nuevo estos caracteres, lo único que tendremos que hacer es volver a entrar en «visudo» y eliminar la línea de «pwfeedback» que hemos añadido en el paso anterior. Así, los caracteres volverán a ocultarse por defecto como han hecho desde hace muchos años.
Riesgos reales de usar root sin precaución
El superusuario es esencial para Linux. Pero también es peligroso. Y es que este sistema operativo está diseñado para ser seguro por defecto y que los usuarios tengan la menor probabilidad posible de romperlo. Pero si elevamos los privilegios, podemos perder todos los datos del disco duro, y dejar el PC totalmente inservible.
Por lo tanto, siempre que trabajemos con «sudo», «su» o «root» es vital extremar las precauciones. De los muchos riesgos que podemos correr, hoy os vamos a explicar los tres más graves.
Eliminación accidental del sistema de archivos: ejecutar comandos destructivos como «rm -rf /» o «rm -rf /*» con sudo, o mientras estamos usando el usuario root, puede eliminar todos los archivos del sistema en segundos, dejándolo completamente inutilizable. Incluso un comando aparentemente inofensivo puede causar daño catastrófico si se incluyen variables mal expandidas, como, por ejemplo, «rm -rf $directorio/*» cuando la variable está vacía.
Instalación de software malicioso con privilegios totales: descargar y ejecutar scripts o paquetes desde Internet mientras tenemos acceso de root puede permitir a un atacante instalar rootkits, spyware o malware y obtener el control total del sistema antes incluso de que podamos darnos cuenta. Con permisos de root, el atacante puede establecer puertas traseras permanentes y ocultar su presencia a nivel de kernel.
Modificación irreversible de permisos en archivos críticos: cambiar los permisos de archivos del sistema (como /boot, /etc/passwd, o el bootloader GRUB) con comandos como chmod 000 /etc/ puede dejar el sistema completamente inarrancable. Sin acceso a estos archivos de configuración, el sistema no puede iniciarse ni siquiera con un LiveCD, teniendo que reinstalarlo por completo o recurrur a servicios de recuperación profesional.
Desactivar la cuenta root en Linux
Si utilizamos un equipo con Linux que utiliza diferentes cuentas de usuario, cabe la posibilidad de que la contraseña root acabe circulando libremente por nuestro entorno sin darnos cuenta. Con esta contraseña en manos no deseadas, los usuarios pueden hacer cualquier tipo de cambios e instalar aplicaciones en el sistema que no son necesarias para el día a día. La solución a este problema, siempre y cuando corramos ese riesgo, pasa por desactivar la cuenta root en Linux.
De esta forma, al bloquear la cuenta root se impide iniciar sesión directamente como root y usar su a root (si no hay contraseña válida). Pero, eso sí, sudo seguirá funcionando para los usuarios autorizados en el grupo sudo (o en sudoers). Para desactivar la cuenta root, debemos abrir terminal e introducir el siguiente comando:
sudo passwd -l root
De esta forma, el equipo bloquea este usuario para que no se pueda utilizar ni con el mando su ni con sudo. Si queremos recuperar nuevamente la cuenta de usuario, tendremos que configurar una nueva.
Recuperar contraseña root
Tanto si hemos deshabilitado la cuenta root como si hemos perdido la contraseña maestra, Linux, nos permite volver a generar una nueva contraseña a través de dos métodos: desde el GRUB de arranque o bien utilizando un LiveCD con una distribución Linux.
Con el GRUB
Una vez se muestre el GRUB de arranque, debemos acceder las opciones avanzadas, una opción que no se encuentra en la pantalla principal y, seguidamente, seleccionar Recovery Mode para, a continuación, seleccionar la opción root para una consola de superusuario.
Desde la línea de comando, lo primero que haremos es montar la unidad con permisos de escritura con el comando
mount -o rw, remount /
A continuación, utilizaremos el comando passwd para establecer una nueva contraseña
passwd root
Finalmente, con los comandos utilizamos los comandos sync y reboot para reiniciar el equipo y que se apliquen los cambios.
sync
reboot
Desde un LiveCD
Para recuperar la contraseña root, podemos utilizar cualquier distro LiveCD, aunque desde SoftZone recomendamos Ubuntu. Una vez hemos iniciado el equipo con esta distribución, en la pantalla de bienvenida, seleccionamos español para que la interfaz se muestre en nuestro idioma y, seguidamente en Probar Ubuntu.
Seguidamente, abrimos la aplicación Terminal e introducimos el siguiente comando:
sudo su
A continuación, debemos identificar la partición donde se encuentra la distribución Linux queremos recuperar la contraseña root. Par hacerlo utilizaremos el comando:
fdisk -l
En el siguiente paso, debemos montar la unidad del sistema:
mkdir /mnt/recover
mount /dev/sda1 /mnt/recover
En nuestro caso, la partición es sda1. Si en nuestro equipo es diferente, debemos modificar sda1 por la partición correspondiente a nuestro equipo. Una vez hemos montado la unidad, ya podemos empezar a trabajar con ella para recuperar la contraseña root. Lo primero es dirigimos al directorio de recuperación con el comando:
chroot /mnt/recover
Y, finalmente, utilizamos el comando passwd para introducir una nueva contraseña root
passwd root
