Es un escenario que le puede pasar a cualquiera, desde el usuario más novato hasta el administrador de sistemas más experimentado: te sientas frente a tu máquina, intentas iniciar sesión y... la contraseña no funciona. Ya sea que la hayas olvidado o que un usuario la haya perdido, la idea de quedar fuera de tu propio sistema GNU/Linux puede ser aterradora.
Por suerte, si tienes acceso físico a la máquina, no todo está perdido. El gestor de arranque GRUB (GRand Unified Bootloader) nos ofrece una puerta trasera de administrador para recuperar el control.
En este tutorial, basado en nuestro video reciente de LibreTICs, te guiaremos paso a paso para recuperar el acceso a tu sistema, ya sea para la cuenta root o para cualquier otro usuario.
Antes de Empezar: Requisitos y Consideraciones Clave
Este método es increíblemente poderoso, pero viene con dos consideraciones fundamentales:
- Requiere Acceso Físico: Esta no es una vulnerabilidad de red. Solo puedes hacer esto si estás físicamente frente al servidor o tienes acceso a la consola de la máquina virtual. Esta es la principal capa de "seguridad": si alguien puede tocar tu máquina, tiene el control.
- No Funciona en Discos Cifrados (LUKS): Si tu partición raíz (/) está cifrada (por ejemplo, con LUKS), este método no funcionará. El cifrado protege tus datos precisamente de este tipo de acceso, ya que el sistema de archivos ni siquiera será legible sin la clave de descifrado.
Resumen Rápido (TL;DR) para Expertos
Si ya conoces el proceso y solo necesitas un recordatorio, aquí están los comandos:
- Reiniciar, presionar Esc o Shift para ver GRUB.
- Presionar e en la entrada de arranque.
- Buscar la línea que empieza con linux (o vmlinuz).
- Añadir al final de esa línea: init=/bin/bash
- Presionar Ctrl + x para arrancar.
- Remontar el sistema en modo lectura-escritura: mount -n -o remount,rw /
- Cambiar la contraseña: passwd tu_usuario (o passwd para root).
- Reiniciar forzadamente: reboot -f
Guía Detallada Paso a Paso
Para todos los demás, aquí está el proceso completo y explicado.
Paso 1: Interceptar el Menú de GRUB
En la mayoría de los servidores (y muchas computadoras de escritorio), el menú de GRUB pasa tan rápido que es invisible, arrancando directamente el sistema operativo.
- Acción: Reinicia tu máquina. Justo cuando comience a arrancar (después de la pantalla de la BIOS/UEFI), mantén presionada la tecla Escape. En algunos sistemas, puede ser la tecla Shift derecha.
Esto "capturará" el arranque y te mostrará el menú de GRUB.
Paso 2: Editar los Parámetros de Arranque
Verás una lista de los sistemas operativos o kernels que puedes arrancar.
- Acción: Con la primera opción (la de arranque por defecto) seleccionada, presiona la tecla e. Esto te permitirá editar los parámetros de arranque para esta sesión.
Paso 3: Modificar la Línea del Kernel
Ahora verás un archivo de texto con la configuración de arranque. No te preocupes, no puedes romper nada de forma permanente aquí; estos cambios son temporales.
- Acción: Usa las teclas de flecha para bajar hasta que encuentres una línea que comience con linux o linux16 (o que contenga la palabra vmlinuz).
- Ve hasta el final de esa línea (la tecla Fin o End es útil aquí).
- Escribe un espacio y luego añade el siguiente texto: init=/bin/bash
¿Qué estamos haciendo? Le estamos diciendo al kernel de Linux que, en lugar de iniciar el proceso normal init (que carga todos los servicios y te lleva al login), queremos que inicie /bin/bash (una terminal) como el primer y único proceso.
- Acción final: Presiona Control + x o F10 para arrancar con estos parámetros modificados.
Paso 4: ¡Estás Dentro! Pero hay un Problema...
El sistema arrancará y, en lugar de una pantalla de login, verás una terminal de línea de comandos. ¡Felicidades, tienes una shell de root!
Pero si intentas cambiar una contraseña ahora con passwd gnu (o el usuario que sea), recibirás un error, probablemente "Authentication token manipulation error".
El problema: Por defecto, para proteger la integridad del sistema en este modo de recuperación, el sistema de archivos raíz (/) se monta en modo de solo lectura (ro). No podemos escribir cambios, como una nueva contraseña.
Paso 5: Remontar el Sistema en Lectura-Escritura (El Truco Clave)
Necesitamos decirle al sistema que nos permita escribir en el disco.
- Acción: Ejecuta el siguiente comando para "remontar" el sistema de archivos raíz (/) en modo de lectura-escritura (rw):
mount -n -o remount,rw /
No deberías ver ningún mensaje si el comando es exitoso.
Paso 6: Ahora sí, Cambia la Contraseña
Con el sistema de archivos listo para aceptar cambios, ahora puedes usar el comando passwd.
- Para cambiar la contraseña de root:
passwd
- Para cambiar la contraseña de otro usuario:
passwd nombre_de_usuario
El sistema te pedirá que introduzcas la nueva contraseña dos veces. ¡Esta vez, funcionará!
Paso 7: Reiniciar y Verificar
¡Misión cumplida! El último paso es reiniciar la máquina para volver al modo normal.
- Acción: Los comandos de reinicio normales pueden no funcionar en este entorno mínimo. La forma más segura de reiniciar es forzando el reinicio.
reboot -f
(En el video, mencionamos halt reboot -f, pero reboot -f es el comando estándar para un reinicio forzado).
La máquina se reiniciará. Esta vez, no presiones Escape. Deja que el sistema arranque normalmente. Tus cambios en GRUB han desaparecido (recuerda que eran temporales), pero tu nueva contraseña se ha guardado permanentemente en el disco.
Ahora, en la pantalla de inicio de sesión, usa el usuario y la nueva contraseña que acabas de establecer. ¡Deberías poder entrar sin problemas!
Conclusión
Este método demuestra el poder que tienes sobre tu sistema... siempre y cuando tengas acceso físico a él. No es una "falla de seguridad" de Linux, sino una característica de recuperación administrativa esencial. También sirve como un poderoso recordatorio: la seguridad física es la base de toda la seguridad informática. Si quieres protegerte contra este tipo de recuperación, la respuesta es el cifrado de disco completo.