domingo, 25 de marzo de 2007

Recuperar Debian sin password de root

   Alguna vez me ha pasado que después de mucho tiempo he intentado entrar como root en algún linux antiguo pero no recordaba la contraseña. Haciendo memoria (de los tiempos de lilo) sé que se le puede pasar al kernel el parámetro single para arrancar el modo monousuario como root sin necesidad de utilizar password. Hacer esto con grub es algo distinto aunque la filosofía es la misma. Se edita la línea kernel y se añade al final, quedando así:
/boot/vmlinuz-2.4.27-speakup root=/dev/hda1 ro single

   Aceptando el cambio y arrancando el sistema tendremos el prompt de root listo para lo que queramos. Esto me ha funcionado siempre en todas las distribuciones que he probado, sin embargo en Debian Sarge el sistema no termina de arrancar sino que muestra el siguiente mensaje:
Give root password for maintenance
(or type Control-D to continue):

   Así que hay que buscar otra solución. Después de descartar el tener que abrir el ordenador para conectar el disco duro a otro e incluso arrancar desde una distribución live-cd, no se me ocurría nada más. Miré si Alex estaba conectado en gtalk para que me echara una mano y la solución que me propuso (sin tener acceso a la consola) fue añadir al final de la línea kernel el parámetro init=/bin/sh, quedando así:
/boot/vmlinuz-2.4.27-speakup root=/dev/hda1 ro init=/bin/sh

   De esta forma, según me dijo se arranca un kernel mínimo y se ejecuta el shell sh. Después tenemos que montar el filesystem en modo lectura-escritura y editar el archivo /etc/shadow para eliminar el password de root:
sh-2.05b# mount -o remount,rw /
sh-2.05b# vi /etc/shadow

   Y listo!. Ahora reiniciando de nuevo podemos logarnos como root y no tendremos que introducir ningún password :-D. Muchas gracias por la ayuda Alex!.

15 comentarios:

sag dijo...

Otra solucion mas elegante.

Arrancas con un live-cd

Montas la particion de tu disco duro y haces.

# chroot /mi/disco /bin/bash
# passwd root
(pones tu nuevo password y reinicia)

Iván dijo...

Hola,

también pensé lo del live-cd pero no quería abrir mi ordenador para conectar el lector. Además quería probar otra solución.

Me apunto la tuya.

Saludos, Iván.

Anónimo dijo...

Como curiosidad para los que tengan fedora, si en el menu del grub pulsan la letra "A" se les mostrará la linea de arranque, a la que si añaden el numero "1" (modo single) y pulsan intro la distribución arrancará una shell mínima como root sin necesidad de contraseña.

Iván dijo...

Afortunados los de Fedora, porque como dije en el post a mi ya me había funcionado con otras distribuciones como por ejemplo RedHat, pero con Debian resulta que no.

Saludos, Iván.

sag dijo...

Si eso es cierto, pero hay mucha mini-distros que en un par de diquetes te lo puede solucionar

Ángel dijo...

Hola!

Yo obtengo el mismo mensaje pero en una situación algo diferente, al intentar arrancar el sistema se cuelga al inicializar el HAL (de la noche a la mañana sin haber modificado NADA) Inicio en modo a prueba de fallos para intentar arrancarlo manualmente o reconfigurarlo pero no hay manera de hacerme root (sé la contraseña pero aun cuando la introduzco me sale el mismo mensaje) ¿Alguna solución? Me pasaré por el blog pero en cualquier caso angelalpra@gmail.com ¡Gracias!

Iván dijo...

Hola Angel,

ya te respondí por email y siento no poder ayudarte más.

Saludos, Iván.

Anónimo dijo...

Gran entrada
Gracias muchas :)

Iván dijo...

Hola Anónimo,

gracias a ti!, me alegro de que te haya resultado útil.

Saludos, Iván.

alce dijo...

Hola.
En un Debian 5.04 me ha funcionado.
Gracias!!!

Iván dijo...

Hola alce,

estupendo, ¡me alegro!.

Saludos, Iván.

Anónimo dijo...

hola tengo el mismo problema pero cuando intento colocar el mount o vi/etc/shadows en la shell 3.01 de mi pc m dice q no se encuentra o no existe... necesito recuperar la contraseña de root porq no puedo actualizar nada!!!

Iván dijo...

Hola Anónimo,

prueba a arrancar con un live-cd y después de montar la partición podrás editar sin problemas el archivo shadow.

Saludos, Iván.

juanjose dijo...

En una sesion de usuario normal, Sin un utilizar live-cd, hice lo sugerido por sag con un agregado previo:

$ chroot /bin
$ sudo bash
# passwd root
(pones tu nuevo password y reinicia)

Anónimo dijo...

Socorro!! algo debe estar muy mal en mi servidor porque sin ningun inconveniente pude ejecutar esto y entrar como root y cambiar su pass..

$ chroot /bin
$ sudo bash
# passwd root
(pones tu nuevo password y reinicia)

Publicar un comentario