Reset al password de Root desde GRUB (Debian)

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.

Para almacenar mis claves utilizo, después de la recomendación de mi amigo Facundo, el KeePassX un excelente gestor de usuarios y contraseñas que es multiplataforma y por supuesto Software Libre!

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.

grub

GRUB Boot

Cuando el GRUB arranca tenemos que editar las opciones de arranque presionando la tecla e.

Editando opciones de GRUB

Edición opciones de GRUB

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
Lo que viene detrás de vmlinuz dependerá de la versión del kernel que tengan instalado. Así como también lo que aparece después de root= dependerá de cómo ustedes tienen instalado el sistema en su filesystem.

Y agregamos:

init=/bin/bash

Cuidado porque seguramente el mapa del teclado es el inglés por defecto y para nosotros los hispano-parlantes nos cambia algunos símbolos.

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

La contrabarra que se ve en la imagen aparece automáticamente para indicar que lo que está escrito abajo es parte de la misma línea anterior.

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

shell después editar grub

Shell después de editar GRUB.

Como no tenemos un sistema completamente funcional veremos que en este caso bash tira algunos errores y de hecho tampoco limpia la pantalla. Pero no importa, porque para lo que lo necesitamos alcanza.

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.

Cuando abramos nano posiblemente nos tire también algunos errores. Pero no lo tenemos en cuenta y presionando Enter continuamos.

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:

/etc/shadow sin password de root

Archivo /etc/shadow modificado sin password de root.

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.

Como hemos iniciado un shell que no está «bien cargado» para reiniciar la máquina tendremos que hacer un hard reset, es decir, presionar el botón de reset o en mi caso mandar la señal de Force Reset.
Login sin password de root

Login sin password de root

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!

KeePassX

Sitio Oficial KeePassX

30 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Litos523 dijo

    Este es uno de esos artículos que hay que tener a mano, para cuando ocurre una catastrofe. ¡Que antes o despues ocurren!

    Yo lo solucione de una manera bastante parecida, pero sin tener que tocar el fichero shadows. En mi blog os cuento como lo hice.

    http://unbrutocondebian.blogspot.com.es/2014/03/restablecer-la-contrasena-de-root.html

    1.    nexus6 dijo

      HOLA LITOS,SOY MEGAFAN DE TU BLOG!!!!

    2.    eliotime3000 dijo

      Muy bue tuto. Me gustó cómo hiciste para reestablecer la contraseña de root.

  2.   nexus6 dijo

    ESTO ES UNA FALLA DE SEGURIDAD TERRIBLE!!!….en caso de que sí funcione.
    ¿Cómo hacer para evitarlo?¿Tienen alguien alguna idea?

    1.    Litos523 dijo

      No es un fallo de seguridad, es una manera de poder recuperar el sistema ante un problema grave como es olvidar la contraseña de administrador.

      Por ello los CPD tienen acceso restringido, para evitar que puedas llegar a toquetear con grub. Pero si prevees que esto no es suficiente o no se puede limitar el acceso, entonces debes proteger grub

      https://blog.desdelinux.net/como-proteger-grub-con-una-contrasena-linux/

      1.    Dhall dijo

        Tranquilos, en la vida nada es seguro! solo hay que estar al tanto de todo, estar actualizando, monitoreando ! 🙂

    2.    cris dijo

      Concuerdo con el parcero, esto permite a cualquiera acceder a nuestra pc, grave, no?

    3.    eliotime3000 dijo

      ¿Fallo de seguridad? Es como si dijeras que la opción reestablecer contraseña de tu correo electrónico fuese peligroso.

    4.    mario dijo

      siguiendo el particionado clásico, y cifrando algunas particiones/carpetas con información personal, separando /root /home /usr /var /boot y tantos puntos de montaje que ahora están en una partición.

  3.   José Leonel Subero dijo

    Saludos compañeros, muy buen blog y muy buena guia, quería aclararles que este paso root@(none):/# mount -o remount rw / no es necesario en sistemas basados en debian y muchos sistemas basados en Red Hat, y solo unas pocas distros basadas en Gentoo son las que requieren ese paso, simplemente con correr passwd luego de realizar los pasos que describen para ingresar al sistema sin contraseña de root

  4.   ivanbarram dijo

    Muy buen tutorial, como dicen más arriba, en caso de catástrofe saca de apuros, pero esto casi siempre se evita con un buen control de cambios.

    Gracias por compartir.

    Saludos.

  5.   cristianhcd dijo

    a favoritos o a marcadores =D

  6.   Rainbow_fly dijo

    Entonces basicamente si alguien quiere acceder a mi pc, solo tiene que reiniciarla, acceder a grub, toquetear y listo.

    1.    eVeR dijo

      Si, a menos que protejas con contraseña el Grub, cosa que se puede hacer tranquilamente.

  7.   anonimo dijo

    No se asusten, si el malo de la película tiene acceso físico al computador y sabe algo, es inevitable que logre sus propósitos.
    Este método de grub facilita un poco lo que siempre se pudo hacer con chroot desde un live-cd/dvd.
    Pero si cambian la contraseña del root el usuario dueño del pc, se dara cuenta porque no podrá mas entrar.
    Lo jodido sería que alguien entre por chroot desde un live-cd/dvd y se haga una copia en un pendrive del archivo /etc/shadow para divertirse con john-the-rupper en su propio computador, sería jodido porque no te enterarías si te han crackeado tus contraseñas de root y usuarios.

  8.   whay dijo

    compa muchas gracias me sirvió mucho

  9.   SomFug dijo

    Hola, por lo que puedo apreciar, tu supones que todo el que lea tu tutorial debe ser sino experto al menos avanzado en el manejo de linux, pero y si no lo es!!!!! entonces me pregunto qué es eso de nano, y como lo abro, con que comando y donde coloco ese comando. El archivo /etc/shadow,donde esta ese archivo y como llego hasta esa carpeta para poder hacer lo que dice este tutorial. «OJO» no critico el tutorial, al contrario, está muy bueno, excelente, pero debes pensar también en aquellos que no sabemos (me incluyo) mucho sobre el manejo de comandos en linux. Explico, supuse que escribiendo nano se abriría el editor y lo hizo, pero despues no supe como llegar al /etc/shadow estando en nano. Y disculpen el resto de usuarios, pero no todos somos expertos, muchos solo somos entusiastas aprendices…. más detalle… Gracias…

  10.   pedrojasper dijo

    genial hoy me paso algo similar y sabia que mediante el grub se hace y creme varias veces lo hice pero mucho mas complicado
    en este tuto lo explica muy simple lo voy a aplica si se puede esta semana
    gracias por tu aporte mil felicictaciones

  11.   jorge dijo

    BUE – NÍ – SI – MO.
    Me ha salvado de volver a formatear Debian.

    Esto también vale para Debian 8, que es con lo que lo he probado.

    Muchísimas gracias.

  12.   Jeane dijo

    No me funciono, sigo con el mismo problema, no se si tenga que ver el echo de que instale debian en modo grafico en virtualbox, quisier aque me ayudaras :/,

  13.   hmamani dijo

    Buenísimo! había formateado un note con debian 8 y me vino de perilla cuando olvidé la pass. Concuerdo con que no sea un «fallo», de todas maneras creo que los sistemas de seguridad que proponen son bien fuertes. Sobre el usuario que tiene dudas, bueno, más que decir «supones que todos somos expertos», podría simplemente colocar las dudas, sin prejuicios ;-D.

    Muchas gracias por compartir!
    pd: yo sí tuve que realizar el paso del mount, había editado la pass desde mi puppy linux, jeje, pero aún así debía ingresar a las opciones del grub para aplicar el passwd (ni modo!)

  14.   Pepper dijo

    Hola, primero, muchas gracias por el aporte es justo lo que necesitaba para no reinstalar Debian 8, pero tengo un problema mas grave, y esque cuando hago todo el proceso e inicia en modo bash el S.O. no funciona el teclado… ni lo detecta, ni funciona las luces del teclado ni nada de nada, asi que no puedo cambiar nada desde bash modo root.

    PD: por si sirve de algo tuve un problema similar cuando instale debian, instale el gestor de arranque grub en otra particion independiente y debian en otra particion, esto ya lo experimente antes con otraos sistema sy me funcionaba siempre, en este caso con debian no, y esque cuando iniciaba debian recien instalado a la interfaz grafica no funcionaba el teclado ni el raton, justo cuando tienes que poner la contraseña para iniciar sesion.
    MUCHAS GRACIAS DE ANTEMANO POR AYUDAR A LOS DEMAS, UN SALUDO.

  15.   MEDB dijo

    Muchas gracias por el aporte. Solución rápida y efectiva 😉

    1.    Celeste de la Cal dijo

      Gracias! Me salvaste! ;D

  16.   gineth dijo

    hola todos necesito ayuda hice todo el proceso hasta donde tenia que escribir r mount -o remount rw / pero una de las cosas quedo mal, y luego he intentado pero solo llega hasta donde escribo init=/bin/bash le doy ctrl + x, y de ahi salen algunas letras pasan rapido pero no llega a la pantalla de r mount -o remount rw / que tengo que hacer?

  17.   goth14wx dijo

    Muchas gracias por este tutorial, en serio me fue de mucha utilidad, en debian 9 no me dejaba entrar como usuario root y con esto se soluciono, una vez mas gracias.

  18.   Christian dijo

    Perfecto el Tuto muy bueno sos un capo !

  19.   Bastian dijo

    Hola.
    Yo lo he intentado aplicando este método pero no me ha funcionado.
    El problema está en que, aunque podamos editar el archivo «shadow», no lo podemos guardar. Al editarlo sin tener privilegios lo abre en modo sólo lectura.

    Saludos.

    1.    btzk dijo

      [quote]Lo primero que debemos hacer es remontar el filesystem para que tenga permisos de escritura. Para eso ejecutamos:

      root@(none):/# mount -o remount rw /[quote]
      creo que para eso es que hay que remontar el fs.
      creo recordar que para W tambien habia una manera de acceder a los usuarios y modificar o quitar contraseña, por medio de un livecd.

  20.   Eric dijo

    Paso a dejar mi agradecimiento, como corresponde. Me sacaste de un gran apuro. Revisé otros blogs y esta solución era la más completa y mejor explicada.