Al instalar el sistema operativo indicamos cual es la contraseña de root durante el proceso y a veces pasa que no recordamos qué contraseña pusimos, lo cual nos impide administrar nuestra distribución linux.

Otras veces renovamos la contraseña por eso de que es una buena práctica cambiarla cada cierto tiempo pero luego no la recordamos.

En estos casos podemos dar por perdida esa contraseña y no nos queda más remedio que intentar cambiarla por otra nueva. Otra forma sería tratar de conseguir la contraseña con un ataque de diccionario, pero tenemos recordad mas o menos como era la contraseña para crear nuestro propio diccionario.

Para cambiar la contraseña de root podemos hacerlo mediante sudo o iniciando el sistema con un terminal de root.

Usando sudo

Este método es válido siempre y cuando tengas instalado sudo, tu usuario se encuentre en el archivo sudoers y por supuesto, tengas permisos para usar passwd con sudo.

[usuario@equipo]$ sudo passwd root
[sudo] password for usuario:
Enter new UNIX password for root:
Retype new UNIX password for root:
passwd: password update successfully

Si nuestro usuario no puede utilizar sudo verás el siguiente mensaje:

[usuario@equipo]$ sudo passwd root
[sudo] password for usuario:
usuario is not in the sudoers file. This incident will be reported.

En este caso tendrás que usar el segundo método que propongo.

Iniciando el sistema como root

Este método consiste en modificar el grub para que al cargar la imagen del sistema operativo ejecute el terminal bash (el cual tendrá privilegios de root) y cambiar la contraseña.

Primero encendemos el equipo y cuando veamos la pantalla del grub seleccionamos el sistema que queremos arrancar y pulsamos la tecla E.

Ahora veremos las opciones del grub para esa entrada y hay que buscar la linea correspondiente a la imagen que se carga. Esta linea que buscamos normalmente empieza por linux y a continuación algo del estilo vmlinuz-3.7.9-104.i686 seguido de un montón de opciones.

linea-vmlinuz

Una vez hemos localizado la linea hay que agregar al final init=/bin/bash.

linea-vmlinuz-final

Nota: Posiblemente las teclas estén cambiadas, en el teclado qwerty español (de españa) el símbolo = se encuentra en la tecla ¡ y el símbolo / en la tecla -

Pulsamos F10 o la combinación de teclas Ctrl + X para iniciar el sistema. Tras esperar un rato se mostrará el prompt de bash.

En este instante la raíz se encuentra montada como lectura así que la volvemos a montar pero como escritura / lectura.

bash-4.2# mount -o remount -rw /

Ahora cambiamos la contraseña de root.

bash-4.2# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password update successfully

y finalmente reiniciamos.

bash-4.2# reboot

Esta forma de recuperar la contraseña la he probado en debian, ubuntu, fedora, archlinux y cinnarch consiguiendo el cambio de contraseña correctamente.