Recuperar el password de root

Si en algún momento olvidáramos el password de root, disponemos de 3 métodos más o menos sencillos para poder recuperarlos. Evidentemente, estos métodos sólo nos funcionarán si el equipo no ha estado protegido adecuadamente para evitar que se pueda realizar cualquiera de estas tareas.

Primer método

Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. Estas opciones impiden pasar parámetros al kernel a menos que introduzcamos la contraseña definida en el mismo fichero de configuración.

  1. Reiniciaremos el sistema y arrancaremos pasándole el parámetro single al kernel; para ello arrancaremos una imagen y añadiremos el parámetro, por ejemplo:
    LILO: linux single

    El sistema arrancará y nos saldrá el prompt de root sin hacer ningún login. 

  2. Ahora hemos de montar la raíz del sistema de ficheros en modo lectura/escritura; lo haremos así:
    # mount -n -o remount,rw /
    # mount /proc
    # mount -a -t nonfs
  3. Ejecutamos el comando passwd y nos preguntará la nueva contraseña que queremos asignarle a root. Elegimos una de la que nos vayamos a acordar y ya está.

Segundo método

Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. El escenario es el mismo que en el método anterior, pero esta vez especificaremos como parámetro a lilo que el kernel se ejecute como un proceso único. Este proceso único es una shell desde la que cambiaremos la contraseña de root. Así, pasamos a lilo el parámetro init=/bin/bash del siguiente modo:

LILO: linux init=/bin/bash

Una vez haya arrancado procederemos como en el método anterior a partir del paso 2.

Tercer método

Lo usaremos en el caso de que lilo no nos permita el paso de parámetros a menos que introduzcamos la contraseña definida en el fichero /etc/lilo.conf, y tampoco nos acordemos de esta. La solución está en arrancar una imagen del kernel desde un disquet, o arrancar desde un Live-CD como Knoppix, por ejemplo.

Al arrancar desde disquet, nos lleva a la prompt de root, sólo que la raiz es el propio diskette o su imagen en memoria. Lo que hemos de hacer es montar la verdadera raiz (/dev/hda1 o la que sea) para acceder al fichero de contraseñas. Procederemos del siguiente modo:

  1. Montamos la verdadera raíz del sistema del siguiente modo:
    # mount -t ext3 /dev/hdaX /mnt (donde /dev/hdaX sería la partición que alberga la raíz)
  2. Accedemos al fichero de contraseñas:
    # vim /mnt/etc/shadow
    Usaremos vim o cualquier otro editor en modo texto.
    Editaremos el fichero /mnt/etc/shadow en el caso de que el sistema use la suite shadow password; en caso contrario haremos: vim /mnt/etc/passwd)
  3. Eliminamos la password de root:
    Llegados a este punto nos encontramos que el fichero contiene una serie de líneas con varios campos separados por el carácter : El segundo campo corresponde a la contraseña encriptada, así que localizamos la línea correspondiente a root y borramos el segundo campo. Por ejemplo:
    Tendremos una línea parecida a esta (el campo en negrita es la contraseña de root encriptada): root:$1$/u17Vfn0$M1gYZbOCJoLGW9Y2CrEld1:12543:0:99999:7::: 

    Y la sustituimos por esta. Es decir, eliminamos la clave: root::12543:0:99999:7:::

La próxima vez que hagamos login como root, el sistema nos solicitará una nueva contraseña. Ponemos una de la que nos acordemos y listo.

Hay que tener cuidado al trastear este tipo de ficheros pues si los inutilizamos podemos tener problemas. Una opción es hacer una copia de seguridad antes de modificarlo:

# cp /mnt/etc/shadow /mnt/etc/shadow.old

Incluso podríamos crear un nuevo administrador sin contraseña para volver a entrar de forma normal en el sistema y cambiar el password del root.

Consejos sobre seguridad

Como podeis ver, sirve de bien poco tener una buena contraseña si no tomamos las precauciones necesarias. Por ello, estas son unas de las formas básicas de proteger nuestras contraseñas y evitar que cualquier usuario pueda loguearse como root:

 

  1. Poner una contraseña en la BIOS o deshabilitar el arranque desde el disquet, para que nadie pueda arrancar un kernel propio y comprometer nuestro sistema obteniendo privilegios extra. 
  2. Quitar el permiso de lectura y escritura a todo el mundo menos a root de los ficheros /etc/shadow y /etc/passwd. De este modo sólo root podrá ver y modificar el contenido de los ficheros que guardan la información de los usuarios (en ellos se encuentran encriptadas las contraseñas; la de root también). 
  3. Restringir el paso de parámetros al kernel en el arranque utilizando las directivas restricted y password en el fichero /etc/lilo.conf. Con estas directivas conseguimos que para pasar parámetros en el arranque se pida contraseña. 
  4. La contraseña que especificamos en el fichero /etc/lilo.conf se guardan en claro. Por este motivo hemos de quitar los permisos de lectura y escritura sobre ese fichero y dejarlos sólo a root. Así nadie podrá leer la contraseña.

Para más información acerca de cómo poner y quitar permisos en los ficheros, ver el capítulo sobre permisos. Para más información sobre los ficheros de contraseñas y su seguridad, podeis revisar el capítulo sobre usuarios y grupos.

Tutorial elaborado por Nacx para ADSLAyuda.com

Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que estás de acuerdo, pero puedes optar por no seguir si lo deseas. Aceptar Leer más