¿Olvidaste la contraseña de tu usuario o de root? No estás solo. Ocurre con más frecuencia de lo que parece, y Linux ofrece varios caminos para recuperar el acceso sin perder datos. En este articulo entinaré mostrarte una guia que cubre las distribuciones más habituales con comandos listos para copiar, explica cómo actuar si el disco está cifrado con LUKS y repasa las buenas prácticas de seguridad tras la recuperación.
⚠️ Advertencia legal y ética: estos procedimientos requieren acceso físico al equipo o a la consola de la máquina virtual. Realízalos únicamente en sistemas de tu propiedad o con permiso explícito del responsable. Aplicarlos en sistemas ajenos sin autorización puede ser constitutivo de delito.
Tabla comparativa rápida por distribución
| Distribución | Acceso al shell | Parámetro GRUB | Remontar raíz | Nota clave |
|---|---|---|---|---|
| Ubuntu / Mint / Debian | Menú recovery o editar GRUB | init=/bin/bash |
mount -o remount,rw / |
Opción recovery mode disponible en GRUB |
| Fedora / RHEL / CentOS / AlmaLinux / Rocky | Editar entrada GRUB | rd.break |
mount -o remount,rw /sysroot + chroot /sysroot
|
Reetiquetar SELinux con touch /.autorelabel
|
| Arch Linux / Manjaro / EndeavourOS | Editar entrada GRUB | init=/bin/bash |
mount -o remount,rw / |
No hay menú recovery por defecto |
| openSUSE Leap / Tumbleweed | Editar GRUB o Rescue System del instalador | rd.break |
mount -o remount,rw /sysroot + chroot /sysroot
|
Revisar AppArmor o SELinux según configuración |
| Kali Linux | Igual que Debian/Ubuntu |
init=/bin/bash o recovery
|
mount -o remount,rw / |
Basado en Debian; mismos pasos |
| Pop!_OS | Editar GRUB o usar LiveUSB | init=/bin/bash |
mount -o remount,rw / |
Basado en Ubuntu |
Antes de empezar: requisitos y advertencias
Lo que necesitas
- Acceso físico al equipo o a la consola de la VM. Estas operaciones de restauración no se pueden hacer en remoto.
- Saber si tu disco está cifrado con LUKS (en ese caso, también necesitas la frase de cifrado).
- Un LiveUSB del mismo sistema o de cualquier distribución Live como alternativa si GRUB no es accesible.
Disco cifrado con LUKS
LUKS es un sistema de cifrado de disco completo que protege tus datos incluso cuando la seguridad física está comprometida. Es el estándar para el cifrado de discos en Linux, ofreciendo un formato independiente de plataforma que proporciona gestión segura de claves, múltiples claves de usuario y compatibilidad entre distribuciones Linux. LUKS es el estándar de facto para el cifrado de discos en Linux y ofrece un impacto mínimo en el rendimiento.
Si el sistema usa cifrado de disco completo, el initramfs solicitará la frase de cifrado al arrancar. Sin esa frase no podrás montar la raíz ni cambiar ninguna contraseña. Este es precisamente el objetivo del cifrado: proteger el sistema ante acceso físico no autorizado.
Si no dispones de la frase:
- Restaura desde una copia de seguridad.
- Si no hay copia, la única opción es reinstalar el sistema operativo.
SELinux y AppArmor
En sistemas con SELinux activo (Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux) es obligatorio crear el fichero /.autorelabel antes de reiniciar. Sin este paso, el sistema puede presentar fallos de autenticación o impedir que arranquen servicios correctamente tras el cambio de contraseña.
En openSUSE puede estar activo AppArmor o SELinux dependiendo de la instalación; compruébalo antes con aa-status o sestatus si tienes dudas.
Procedimiento genérico paso a paso
Este flujo es válido para la mayoría de distribuciones. Más adelante encontrarás las particularidades de cada una.
1. Mostrar el menú GRUB
Reinicia el equipo:
Si tienes varios sistemas operativos instalados en la misma computadora, tendrás activo el gestor GRUB y este se mostrará durante el arranque. Si solo tienes instalado una distribución Linux y durante su intalación indicaste que se ocultara GRUB, deberas serguir los siguientes pasos
Y, según el firmware:
-
BIOS/Legacy: mantén pulsada la tecla
Shiftdurante el arranque. -
UEFI: pulsa
Escrepetidamente justo tras el POST, o en algunas distros simplemente espera a que aparezca el menú si hay varios sistemas instalados.
Si el menú GRUB está oculto con
GRUB_TIMEOUT=0, edita/etc/default/grubdesde un LiveUSB y cambia el valor a5o superior; luego ejecutaupdate-grubogrub2-mkconfig.
2. Seleccionar o editar la entrada del kernel
- Si ves una opción Advanced options o recovery mode, selecciónala y pasa al paso 3B.
- Si no, sitúate sobre la entrada principal del kernel y pulsa
epara editar.
3. Obtener un shell root
Opción A — init=/bin/bash (Ubuntu, Debian, Kali, Arch, Manjaro)
Localiza la línea que comienza por linux y añade al final:
init=/bin/bash
Opción B — rd.break (Fedora, RHEL, CentOS, AlmaLinux, Rocky, openSUSE)
Localiza la línea linux y añade al final:
rd.break
4. Arrancar con la modificación
Pulsa Ctrl+X o F10 para iniciar con los parámetros modificados.
5. Remontar el sistema de ficheros en lectura/escritura
El sistema de ficheros monta en modo solo lectura por seguridad; es necesario remontarlo:
Para init=/bin/bash:
mount -o remount,rw /
Para rd.break (antes de hacer chroot):
mount -o remount,rw /sysroot
chroot /sysroot
6. Cambiar la contraseña
# Cambiar la contraseña de un usuario concreto
passwd nombre_de_usuario
# Cambiar la contraseña de root
passwd root
Escribe la nueva contraseña cuando se solicite y confírmala.
7. SELinux: reetiquetar antes de reiniciar (solo Fedora/RHEL/CentOS/AlmaLinux/Rocky/openSUSE con SELinux)
touch /.autorelabel
exit # salir del chroot si aplica
exit # salir del shell
El primer arranque tras el reetiquetado puede tardar varios minutos dependiendo del tamaño del sistema de ficheros.
8. Reiniciar
reboot -f
# o bien
exec /sbin/init
Procedimientos detallados por distribución
Ubuntu, Linux Mint y Debian
Método preferido: en el menú GRUB selecciona Advanced options for Ubuntu → entrada con (recovery mode) → en el menú de recuperación elige root – Drop to root shell prompt.
Método alternativo (editar GRUB):
- Pulsa
esobre la entrada del kernel. - Añade
init=/bin/bashal final de la línealinux. - Pulsa
Ctrl+X.
mount -o remount,rw /
passwd nombre_de_usuario # opcional, si quieres cambiar un usuario concreto
passwd root
sync
reboot -f
Ubuntu no usa SELinux por defecto; no es necesario reetiquetar.
Fedora, RHEL, CentOS, AlmaLinux y Rocky Linux
Estas distribuciones usan SELinux en modo enforcing por defecto. Sigue este flujo al pie de la letra:
- Edita la entrada GRUB pulsando
e. - En la línea
linux, elimina los parámetrosrhgb quiet(opcional, para ver el arranque) y añaderd.breakal final. - Pulsa
Ctrl+X.
# En el shell initramfs
mount -o remount,rw /sysroot
chroot /sysroot
passwd nombre_de_usuario # si necesitas cambiar un usuario
passwd root
# Obligatorio para SELinux
touch /.autorelabel
exit # salir del chroot
exit # salir del initramfs
El sistema reetiquetará todos los contextos SELinux en el siguiente arranque. Sé paciente: puede tardar entre 2 y 10 minutos.
Arch Linux, Manjaro y EndeavourOS
Arch no incluye un menú recovery en GRUB por defecto.
- Edita la entrada GRUB pulsando
e. - Añade
init=/bin/bashal final de la línealinux. - Pulsa
Ctrl+X.
mount -o remount,rw /
# Si /boot está en una partición separada, móntala también:
# mount /dev/sdaX /boot
passwd nombre_de_usuario
passwd root
# Forzar sincronización de buffers antes de reiniciar
sync
exec /sbin/init
# o bien: reboot -f
Si usas systemd-boot en lugar de GRUB (instalaciones recientes de Arch en UEFI), pulsa
een el menú de systemd-boot y añadeinit=/bin/bashal final de las opciones del kernel.
openSUSE Leap y Tumbleweed
Opción 1: editar GRUB
- Selecciona la entrada del kernel y pulsa
e. - Añade
rd.breakal final de la línealinux. - Pulsa
Ctrl+X.
mount -o remount,rw /sysroot
chroot /sysroot
passwd nombre_de_usuario
passwd root
touch /.autorelabel # si SELinux está activo
exit
exit
Opción 2: arrancar desde el instalador de openSUSE
- Arranca desde el DVD/USB de instalación.
- Selecciona Rescue System.
- Sigue las instrucciones en pantalla para montar el sistema raíz y cambiar contraseñas.
Kali Linux
Kali está basado en Debian; el procedimiento es idéntico.
- Selecciona Advanced options → recovery mode en GRUB, o edita la entrada y añade
init=/bin/bash.
mount -o remount,rw /
passwd nombre_de_usuario
passwd root
sync
reboot -f
Pop!_OS
Método preferido: usar el Recovery Mode integrado de Pop!_OS (Systemd‑boot).
- Enciende el equipo y mantén pulsada la tecla Espacio para abrir el menú de systemd‑boot.
- Selecciona Pop!_OS Recovery.
- Cuando cargue el entorno de recuperación, abre una terminal.
- Monta la partición raíz en modo lectura‑escritura:
bash
sudo mount -o remount,rw /
- Cambia la contraseña:
bash
passwd nombre_de_usuario # opcional, para un usuario concreto
passwd root
sync
reboot
Método alternativo (editar entrada en systemd‑boot):
- En el menú de systemd‑boot, selecciona la entrada normal de Pop!_OS.
- Pulsa
epara editar temporalmente los parámetros del kernel. - En la línea que empieza por
linux, añade al final:
Código
init=/bin/bash
- Arranca con
Ctrl+X.
Una vez en la shell:
bash
mount -o remount,rw /
passwd nombre_de_usuario
passwd root
sync
reboot -f
Pop!_OS tampoco usa SELinux por defecto, así que no es necesario reetiquetar.
Recuperación desde LiveUSB o LiveCD
Si no puedes editar GRUB (por ejemplo, GRUB está protegido con contraseña, el sistema no arranca o el menú está oculto), usa un LiveUSB:
Sistema sin cifrado
# 1. Identificar la partición raíz (busca ext4, btrfs, xfs, etc.)
lsblk -f
fdisk -l
# 2. Montar la partición raíz (ajusta /dev/sda2 a tu caso)
sudo mount /dev/sda2 /mnt
# 3. Montar los sistemas de ficheros virtuales necesarios para chroot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run # necesario en algunos sistemas
# 4. Entrar en el chroot
sudo chroot /mnt
# 5. Cambiar contraseñas
passwd nombre_de_usuario
passwd root
# 6. Salir y reiniciar
exit
sudo reboot
Sistema con cifrado LUKS
# 1. Abrir el contenedor LUKS (te pedirá la frase de cifrado)
sudo cryptsetup luksOpen /dev/sdaX cryptroot
# 2. Montar el volumen descifrado
sudo mount /dev/mapper/cryptroot /mnt
# 3. Si usas LVM dentro de LUKS, activa los volúmenes
sudo vgchange -ay
sudo mount /dev/nombre_vg/nombre_lv /mnt
# 4. Continuar con el chroot como en el caso sin cifrado
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
passwd nombre_de_usuario
passwd root
exit
sudo reboot
Proteger GRUB con contraseña
Para evitar que cualquier persona con acceso físico pueda editar las entradas de GRUB y obtener un shell root, protégelo con contraseña:
# Generar el hash de la contraseña
grub-mkpasswd-pbkdf2
# Editar /etc/grub.d/40_custom y añadir:
set superusers="admin"
password_pbkdf2 admin <hash_generado>
# Aplicar los cambios
sudo update-grub # Debian/Ubuntu/Kali
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Fedora/RHEL/CentOS
sudo grub2-mkconfig -o /boot/grub/grub.cfg # Arch/openSUSE
Con esta protección, editar GRUB requerirá la contraseña que hayas definido. Combínalo con cifrado LUKS para una protección completa.
Buenas prácticas tras recuperar el acceso
- Cambia todas las contraseñas por otras fuertes y únicas (mínimo 16 caracteres con letras, números y símbolos).
- Habilita cifrado de disco completo (LUKS) si aún no está activo; es la protección más efectiva contra acceso físico no autorizado.
- Protege GRUB con contraseña si el equipo está en un entorno físico no seguro (oficina compartida, portátil de viaje, etc.).
-
Revisa cuentas con privilegios para asegurarte de que solo los usuarios correctos tienen acceso a
sudoowheel:
getent group sudo # Debian/Ubuntu/Kali
getent group wheel # Fedora/RHEL/Arch/openSUSE
- Audita los logs para detectar accesos sospechosos anteriores:
last # últimos inicios de sesión
lastb # intentos fallidos de autenticación
journalctl -p err # errores del sistema
grep "sudo" /var/log/auth.log # uso de sudo (Debian/Ubuntu)
grep "sudo" /var/log/secure # uso de sudo (Fedora/RHEL)
- Actualiza el sistema inmediatamente tras recuperar el acceso para cerrar posibles vulnerabilidades.
Preguntas frecuentes
¿Puedo recuperar la contraseña antigua? No. Linux almacena hashes irreversibles (SHA-512, bcrypt o yescrypt) en /etc/shadow. No es posible revertir el hash a la contraseña original; solo puedes establecer una nueva.
¿Necesito la contraseña de root para cambiar otra contraseña? No si arrancas en modo recovery o usas un LiveUSB. Estos métodos te proporcionan un shell con privilegios de root sin necesidad de conocer ninguna contraseña actual.
¿Qué pasa si no reetiqueto SELinux en Fedora/RHEL? El sistema puede presentar fallos de autenticación (el usuario no puede iniciar sesión aunque la contraseña sea correcta), servicios que no arrancan o errores de permisos en ficheros del sistema.
¿Funciona este método en servidores remotos sin acceso físico? No directamente. Sin acceso físico o a la consola de la VM (KVM, iDRAC, iLO, VNC de tu proveedor cloud), no puedes modificar GRUB ni arrancar desde un LiveUSB. En ese caso, contacta con el soporte de tu proveedor o usa su consola de recuperación si la ofrece.
¿Es seguro mi sistema si alguien puede hacer esto? Un sistema sin cifrado de disco y con acceso físico es vulnerable a este tipo de acceso. El cifrado completo del disco con LUKS (y una frase robusta) es la única defensa real, ya que sin la frase de cifrado el contenido del disco es ilegible.
¿Qué diferencia hay entre init=/bin/bash y rd.break? init=/bin/bash sustituye el proceso de inicio (systemd/init) por un shell bash directamente, con el sistema de ficheros raíz montado. rd.break interrumpe el arranque en el initramfs, antes de que se monte el sistema raíz real, y es el método preferido en distros con SELinux porque el contexto de seguridad se preserva correctamente al hacer chroot.
Recuperar el acceso a un sistema Linux tras olvidar una contraseña es un proceso perfectamente manejable si tienes acceso físico al equipo. Los métodos descritos aquí (editar GRUB, usar el modo recovery o arrancar desde un LiveUSB) cubren todas las distribuciones habituales y no requieren herramientas externas especiales.
La contrapartida es que estos métodos demuestran que un sistema Linux sin cifrado de disco es vulnerable ante quien tenga acceso físico. Si la seguridad es una prioridad, habilita LUKS, protege GRUB con contraseña y mantén el acceso físico al equipo bajo control.
Usa estas técnicas con responsabilidad, solo en sistemas propios o con permiso explícito, y aprovecha el proceso de recuperación para mejorar la postura de seguridad del sistema.