Siempre me he preguntado qué pasaría si olvido la contraseña del usuario administrador o root en un sistema Linux. Sabemos que con el comando passwd un usuario puede cambiar su contraseña y que el usuario root puede cambiar la contraseña de los demás usuarios, sin embargo, ningún otro usuario sin privilegios administrativos puede cambiar la contraseña de root (naturalmente) por lo que si olvidamos la contraseña del único usuario administrativo, cómo la recuperamos?
El proceso que describo a continuación funciona para sistemas RHEL y derivados (Fedora y Centos).
Primero debemos tener acceso al menú de arranque del sistema. Al reiniciar el sistema operativo debemos detener el arranque automático presionando cualquier tecla en el menú del grub.
Una vez que hemos seleccionado nuestro sistema operativo, procedemos a presionar la tecla 'e' para editar la entrada correspondiente.
Luego vamos hasta la línea donde se encuetra el kernel.
Nos posicionamos al final de la línea y agregamos el parámetro rd.break
Luego de esto, procedemos a presionar Crtl-x para arrancar el sistema con la entrada editada. Esto ocasionará que el sistema se detenga y nos arroje un shell dentro del initramfs, antes de montar el resto del sistema.
Dentro de este shell podemos montar el root filesystem, simplemente necesitamos ejecutar el comando
mount -o rw, remount /sysroot
De hecho dentro de sysroot se encuentran todos los archivos del sistema, así que una vez que los hemos montado en modo lectura-escritura podemos utilizar el comando passwd y cambiar la contraseña del usuario root.
Primero debemos cambiar al root /sysroot ejecutando el comando
chroot /sysroot
Una vez hecho esto, podemos ejecutar el comando passwd y cambiar la contraseña del usuario root.
El último paso consiste en hacer un relabel de los archivos del sistema linux, ya que si estamos utilizando RHEL o derivados este procedimiento habrá cambiado el contexto del archivo passwd, lo que nos dará problemas con SELinux.
Para hacer el relabel automático en el próximo arranque, sólo necesitamos crear un archivo vacío en el directorio raíz llamado .autorelabel
touch /.autorelabel
Listo, solamente necesitamos continuar con el proceso normal de arranque, para ello utilizamos el comando exit para salir del chroot y del ram filesystem.
Espero que les sea útil.
No hay comentarios:
Publicar un comentario