Hace poco más de un mes hice una limpieza general en el ordenador: formateé todo el disco duro, lo volví a particionar distribuyendo mejor el espacio e instalé Windows XP. El caso es que entre una cosa y otra llegaron los exámenes y no tuve tiempo de instalar Debian hasta ayer a última hora de la tarde
Había dejado bajando la versión estable en DVD desde el mediodía y ya la había grabado, así que lo instalé de la forma habitual. El problema llegó cuando, al hacer un su para ser root y poder instalar los diferentes paquetes, el sistema me decía que la contraseña que introducía no era la correcta, algo realmente extraño pues la acababa de teclear dos veces hacía unos minutos.
El caso es que necesitaba la contraseña de root, así que tuve que buscar la forma de conseguirla. Una era volviendo a reinstalar Debian. Sin embargo, la idea de volver a instalar todo, aunque no tuviera que hacer copia de seguridad no era muy divertida. Además eso era matar moscas a cañonazos y yo quería hilar más fino.
Así que busqué en Google y encontré dos opciones: la primera era emplear una distribución live, para arrancar directamente desde ella y cambiar la contraseña desde allí, y la segunda emplear GRUB para conseguir el acceso. Como no tenía a mano ninguna distribución live, opté por la segunda opción.
Ésta consiste en, una vez delante del menú de arranque de GRUB, situarse sobre la línea referente a Debian y pulsar la tecla e para editar el arranque relativo a ese SO. En mi caso tenía esto:
root (hd0,4)
kernel /boot/vmlinuz-2.6.18-6-k7 root=/dev/hda5 bootkbd=es
initrd /boot/initrd.img-2.6.18-6-k7
savedefault
Ahora nos situamos en la línea que comienza con kernel y añadimos init=/bin/sh, de forma que quede así:
root (hd0,4)
kernel /boot/vmlinuz-2.6.18-6-k7 root=/dev/hda5 bootkbd=es init=/bin/sh
initrd /boot/initrd.img-2.6.18-6-k7
savedefault
A continuación, pulsamos enter para aceptar los cambios y pulsamos b para arrancar el sistema con los nuevos parámetros. Esto nos llevará directamente a una shell de superusuario. Por tanto, ahora simplemente hay que reiniciar la constraseña de root. Para ello, editaremomos el fichero /etc/shadow, para lo cual a su vez necesitamos montar el sistema de ficheros. Empleamos para ello el siguiente comando, que monta el sistema raíz con permisos de lectura y escritura:
mount -o remount,rw /
Ahora podemos editar el fichero con nuestro editor preferido:
vi /etc/shadow
En este fichero se encuentran las contraseñas codificadas y otra información de cada usuario. Así pues, sólo debemos buscar la línea correspondiente al root y modificarla convenientemente:
root:$1$IVM/sKgl$4ljhDuuHmx2Y8CYKasgbQ/:14131:0:99999:7:::
Como se puede ver, en cada línea se separan los diferentes campos por dos puntos. El correspondiente a la contraseña es el segundo, así que la línea relativa al superusuario quedaría así:
root::14131:0:99999:7:::
Hecho esto, sólo queda reiniciar y loguearse como root. Evidentemente, esta vez no nos pedirá contraseña, así que una vez conseguido el acceso de superusuario, simplemente tenemos que cambiar la contraseña mediante el comando passwd:
passwd
De esta forma habremos recuperado nuestra contraseña de superusuario. Cabe destacar el hecho de que antes de ésta, encontré otra solución consistente en, en lugar de añadir init=/bin/sh, añadir single en el menú de edición de GRUB. Sin embargo, este método en Debian no funciona, pues el arranque nos acaba pidiendo la contraseña igualmente mediante este mensaje:
Give root password for maintenance
(or type Control-D to continue):
En cualquier caso, como habéis comprobado, el método es prácticamente el mismo.
Comentarios recientes