Root Shell desde el GRUB en GNU/Linux

Publicado por Diego Córdoba en

Hoy aprenderemos a acceder a una terminal de root, o root shell, en cualquier distro Linux, para realizar tareas administrativas, y sin necesidad de usar una distro en modo Live.

Este artículo surge para ayudar a resolver inquietudes de un alumno de mis cursos online… ojalá que así sea 🙂

Motivaciones

Imaginemos que nuestro sistema operativo tiene desactivada la cuenta de root, y el modo de acceso a una terminal de superusuario es mediante sudo. Si el archivo de privilegios /etc/sudoers está corrupto o mal configurado, no podremos tener acceso a una terminal de root desde nuestra cuenta de usuario común.

Otro caso común, si nos olvidamos la contraseña de usuario, y la cuenta de root está desactivada. En este caso también sería interesante acceder a una terminal de root para poder ejecutar comandos como passwd.

Una solución posible y sencilla es utilizar una distro en modo live, iniciar la computadora, montar el filesystem raíz (/) del sistema operativo instalado, y editar archivos de configuración, o usar herramientas como chroot.

Si bien esta solución es factible, y necesaria si lo que queremos hacer es, por ejemplo, modificar el particionado de un disco principal, los sistemas GNU/Linux en su mayoría nos permiten acceder a consolas de root desde el GRUB, sin necesidad de usar un modo live.

A continuación aprenderemos a acceder a un shell de root sin necesidad de un live-cd/live-usb.

Consola root desde el inicio del sistema

En general yo he usado dos formas de acceder a una consola de root:

  1. Mediante el modo de recuperación que añaden algunas distros como Ubuntu, Debian y derivados entre las opciones del GRUB.
  2. Mediante la modificación de la línea de ejecución de inicio dentro del GRUB.

La primer opción es factible siempre y cuando el menú del GRUB disponga del modo recovery. La segunda opción puede aplicarse a cualquier distro.

NOTA: Algunas distros entran directamente al GRUB al arrancar, otras, como Ubuntu, tienen oculto dicho menú, y es posible acceder presionando repetidamente la tecla «Shift» durante el arranque de la computadora.

Veamos cómo se hace con cada una de estas formas!

Root Shell mediante el «Recovery Mode»

La ventana de menú del GRUB2, particularmente para Lubuntu, es la siguiente (no suele variar demasiado entre distros).

grub2 menu

El modo de recuperación generalmente se encuentra dentro de las opciones avanzadas de inicio. Si entramos en las opciones avanzadas (marcadas en la primer captura) veremos algo similar a esto:

grub2 recovery mode

En esta captura se ve marcada la opción del modo recuperación. Si entramos veremos un menú como el siguiente:

recovery menu grub2

Entre las opciones tenemos utilidades para verificar discos, actualizar el propio grub, o activar la red.

Por defecto la red no se activa en modo recovery, pero es recomendable (salvo que necesiten trabajar sobre controladores de red) que la habiliten, ya que dentro de la consola de root podrán acceder a Internet, actualizar el sistema, etc.

Para habilitarla, solamente deben dar <Enter> sobre la opción network. Esto habilitará la red (les pedirá remontar los sistemas de archivo en modo lectura-escritura), y volverá al menú original.

Luego de activar la red, pueden dar <Enter> sobre la opción root, que les cargará una consola de superusuario para poder trabajar como root.

recovery menu root shell

Objetivo cumplido! 😀

Root Shell mediante la edición del GRUB2

Bien, el Recovery Mode de algunas distros por ejemplo, no muestra un menú de opciones, sino que salta a una terminal que nos pide la contraseña de root. Si este es el caso, y no tenemos dicha contraseña, deberemos utilizar la segunda opción.

Veamos de qué se trata!

Una vez que entramos a la pantalla principal del GRUB, el menú principal, nos posicionamos en la entrada de arranque predeterminada, y presionamos la letra «e» del teclado.

Veamos un ejemplo con un Debian (sí, es una máquina virtual que ya tiene sus años, pero sirve igual).

grub2 debian menu

Al presionar la letra «e» entraremos al modo edición de dicha entrada en las configuraciones del GRUB2.

Dentro de este modo, buscaremos la línea de carga del sistema. Esta línea es fácil de identificar porque inicia con la palabra «linux«, como se ve en la siguiente imagen.

grub2 edit linux ilne bin bash root shell

Una vez ubicada, nos movemos con el cursor hasta el final de la línea, y añadimos la cadena:

init=/bin/bash

Luego de lo cual, presionamos la combinación «Ctrl+X«. Esto arrancará la opción seleccionada con los cambios aplicados.

Cabe aclarar que estos cambios son volátiles, sólo para el inicio actual, y no se guardarán en ningún archivo de configuración. Así que no tengan miedo, si no sale bien, pueden reiniciar la computadora y listo 🙂

La siguiente pantalla muestra la terminal de root obtenida:

grub2 root shell bin bash

Objetivo cumplido nuevamente! 😀


Y hemos llegado al final, espero que les haya sido útil!

Nunca se sabe cuándo va a ser necesario acceder a una terminal de root, así que es bueno tener, principalmente la segunda opción, en la mente.

Pueden haber otras opciones de inicio de root shell, pero con estas dos no deberían tener inconvenientes.. de hecho, yo vengo usando la segunda opción siempre que me ha hecho falta desde hace años.

¡Será hasta la próxima!


¿Preguntas? ¿Comentarios?

Si tenés dudas, o querés dejarnos tus comentarios y consultas, sumate al grupo de Telegram de la comunidad JuncoTIC!
¡Te esperamos!

Categorías: Linux

Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador