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!
30 comentarios, deja el tuyo
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
HOLA LITOS,SOY MEGAFAN DE TU BLOG!!!!
Muy bue tuto. Me gustó cómo hiciste para reestablecer la contraseña de root.
ESTO ES UNA FALLA DE SEGURIDAD TERRIBLE!!!….en caso de que sí funcione.
¿Cómo hacer para evitarlo?¿Tienen alguien alguna idea?
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/
Tranquilos, en la vida nada es seguro! solo hay que estar al tanto de todo, estar actualizando, monitoreando ! 🙂
Concuerdo con el parcero, esto permite a cualquiera acceder a nuestra pc, grave, no?
¿Fallo de seguridad? Es como si dijeras que la opción reestablecer contraseña de tu correo electrónico fuese peligroso.
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.
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
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.
a favoritos o a marcadores =D
Entonces basicamente si alguien quiere acceder a mi pc, solo tiene que reiniciarla, acceder a grub, toquetear y listo.
Si, a menos que protejas con contraseña el Grub, cosa que se puede hacer tranquilamente.
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.
compa muchas gracias me sirvió mucho
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…
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
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.
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 :/,
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!)
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.
Muchas gracias por el aporte. Solución rápida y efectiva 😉
Gracias! Me salvaste! ;D
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?
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.
Perfecto el Tuto muy bueno sos un capo !
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.
[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.
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.