11/02/2007

Perdi mi contraseña de root

Es mas común de lo que pensamos que usuarios sin experiencia en Linux o bien administradores pierdan su contraseña de root por diferentes razones. Las razones son diversas. Por parte de los administradores es más por falta de comunicación con el antecesor; con los usuarios nuevos de Gnu/Linux es por descuido. Sin importar la razón siempre se busca lo mismo, tratar de recuperar la contraseña de root.

Me he dedicado a testear las distintas formas de cambiar contraseñas de root y estos son mis resultados.

Para empezar, decir que es casi imposible recuperar la contraseña de root. Si alguien quiere comprobarlo deberia tratar de descifrar el archivo shadow que es donde los sistemas unix/linux guardan las contraseñas encriptadas obviamente. Lei por ahí un articulo que decía que alguien logro descifrar con el john the ripper su clave de root, esto no es mas que una rareza, porque si la contraseña es muy elaborada puede pasar mucho tiempo antes que un programa de ese tipo pueda desencriptar una contraseña, y por otro lado, al no tener acceso de root no se podría copiar el archivo directamente, entonces quedamos donde empezamos... en otras palabras, recuperar una clave de root es casi imposible.


Una vez que asumimos que no podemos recuperar la contraseña de root, solo nos queda intentar borrarla y reemplazarla por otra, esto es lo que voi a intentar explicar a continuación.

Método 1:

Un método que se recomienda y que NO me resulto, a pesar de intentarlo mucho, es el de añadir en la linea de Grub o Lilo la palabra:

single, linux=single, nuestro_linux=single 1 o simplemente 1


Esto No sirve (por lo menos hoi en dia, es posible que venga activado por defecto la opción wait:/sbin/sulogin, en todas las distros, esto es para que nos oblige a logearnos) Con esto solo logramos que nos entregue una terminal donde tenemos que loguearnos igual como root - o como usuario-; pero es muy útil a la hora de tener que configurar o arreglar nuestro sistema Gnu/Linux, porque nos permite entrar de modo monousuario y en algunas ocasiones he visto que echar a correr fsck para escanear nuestra partición.



Método 2

Este método es muy parecido al anterior, pero tiene mas fundamento y según mis pruebas funciona de maravilla. Para esto cuando botea el grub o lilo añadimos las siguientes lineas:

init=/bin/bash

Para poder agregar esto en el grub o lilo, simplemente apretamos "e" antes de elegir el S.O. que vamos a usar. Esto nos permite editar las opciones de arranque del kernel. En caso de tener una imagen splash en nuestro gestor de arranque, apretamos escape antes y después "e" y en la segunda linea agregamos las lineas descritas, así:


title Linux
root (hd2,1)
kernel /boot/vmlinuz root=/dev/hdd2 ro init=/bin/bash
savedefault
boot
Luego damos enter que guarda temporalmente para este boteo los cambios en el gestor de arranque y apretamos "b" para botear.

Después de cargar los que tiene que hacer el kernel, nos va a mostrar una consola ya logeados como root :o

Ahora solo nos queda cambiar la contraseña con:

passwd root
Si aun no lo permite, podemos borrar la anterior antes con:

passwd -d root

Y cambiamos la contraseña.



Método 3

Este método consiste en entrar con un live-cd (recomiendo knoppix) y montar la partición donde esta de linux de la siguiente forma:

mount /dev/hdax

Esto también lo podemos hacer (en knoppix) abriendo una partición en el modo gráfico y acá abrimos una consola -apretando F4 por ejemplo-.

Ahora editamos el archivo donde están las contraseñas del sistema (cada uno elegirá su editor, yo como siempre con vi)

vi /etc/shadow

y aca vamos a ver algo como esto:

root:$1$StR0lQqs$XQuhxTIC5.:13764:0:::::
bin:!!:97:0:::::
daemon:!!:97:0:::::
.
.
.
Borramos todo lo que esta entre los dos puntos, de esta forma:

root::13764:0:::::
bin:!!:97:0:::::
daemon:!!:97:0:::::
.
.
.
Guardamos y salimos del live-cd. Ahora entramos de forma normal al linux y cambiamos la contraseña con passwd como en el método anterior.

Nota: Hay veces que tenemos que hacer un chroot para poder editar por ejemplo: si montamos /dev/hdax en /mnt/hdax, hacemos un chroot /mnt/hdax ó chroot /mnt/hdax /bin/bash de todas formas un man chroot, nunca esta de más :)


Metodo 4:

El mas descarado :p...

Básicamente consiste en abrir el equipo y extraer el disco duro e instalarlo en otro equipo para editar el /etc/shadow una vez montado como esclavo...

0 comentarios:

Usuarios Online