El otro dÃa estaba trabajando en el mantenimiento de algunas máquinas virtuales (VM, Virtual Machine) y me pasó que no recordaba la password de Root ni de ningún otro usuario. Oh! Pobre de mÃ, en qué lÃo me metÃ! ¿!Qué fue lo que hice!? ¿En qué momento cambié la clave que no recuerdo? Luego siguieron algunos pensamientos que no puedo reproducir pero ustedes pueden imaginarse…
Buscando en el blog encontré un viejo post del amigo elav para Cambiar la contraseña de root en Debian/LMDE. Lamentablemente a mi no me funcionó, asà que acá les paso otro método.
Bien, el caso es que no recordaba la clave y además la que tenÃa almacenada en el KeePassX no funcionaba, para ningún usuario. Entonces después de darme por vencido por probar las mil y una claves que se me cruzaban por la cabeza simplemente me digné a hacer un reset a la password de Root desde GRUB para mi querido Debian.
Editando opciones de GRUB
El proceso es relativamente sencillo y lo único que necesitamos es tener GRUB instalado (sin mencionar que tenemos que tener el acceso para ver el arranque de la máquina, no?). En mi caso, me conecté con el virt-manager (tengo las VMs con KVM) y reinicié la máquina, pero esto también sirve para una máquina real.
Cuando el GRUB arranca tenemos que editar las opciones de arranque presionando la tecla e.
Ahora debemos editar las opciones con las que arranca el sistema. Nos movemos hasta la lÃnea que carga el kernel del sistema operativo. Es la lÃnea que comienza con linux:
echo 'Loading Linux 3.2.0-4-amd64 ...' linux /vmlinuz-3.2.0-4-amd64 root=/dev/mapper/seacat-root ro quiet
Y agregamos:
init=/bin/bash
Después de la palabra quiet. La lÃnea debe quedar:
linux /vmlinuz-3.2.0-4-amd64 root=/dev/mapper/seacat-root ro quiet init=/bin/bash
Una vez editado esto, nos basta con arrancar la máquina. Como dice en la imagen, con Ctrl+x o F10 arrancamos el sistema con estas opciones.
Esto nos devolverá un shell y podremos editar el archivo /etc/shadow.
Quitando la password de Root
En la cuarta lÃnea de la imagen nos aparece el prompt de la siguiente manera:
root@(none):/#
Lo primero que debemos hacer es remontar el filesystem para que tenga permisos de escritura. Para eso ejecutamos:
root@(none):/# mount -o remount rw /
Ahora sÃ, podemos proceder a editar con nano el archivo /etc/shadow.
El archivo /etc/shadow en la primera lÃnea tiene la información de root. Para cada lÃnea tenemos un conjunto de campos y éstos están separados por dos puntos (:).
El primer campo corresponde al nombre de usuario, el segundo campo es el hash correspondiente a la password. Lo que tenemos que hacer es borrar todos los caracteres para que quede sin password de root. Como se ve en la imagen:
Guardamos el archivo con Ctrl+o y salimos de nano con Ctrl+x. Ahora sólo nos resta reiniciar la máquina. Cuando el sistema nos pida el login podremos ingresar como root sin tener que ingresar ninguna password.
Una vez que el sistema inicia, ingresamos como root y ahora sà podemos ejecutar passwd y seteamos una nueva password de root:
# passwd
Espero que les haya servido!