Recientemente descubrí que si edito GRUB antes de arrancar y agrego rw init=/bin/bash
Termino con un shell raíz.
Estando en una condición que quiero entender todo, me gustaría saber por qué sucede esto. Quiero decir, ¿es un error? ¿Es una característica? ¿Está ahí para ayudar a los administradores a arreglar las cosas, ya que solo funciona si tiene acceso físico a una computadora?
¿Lo proporciona GRUB o el núcleo real?
Respuesta aceptada:
Esta es una función y se utiliza para el mantenimiento del sistema:permite que un administrador de sistemas recupere un sistema de archivos de inicialización en mal estado o cambie una contraseña olvidada.
Esta publicación en la lista de correo de Red Hat explica algunas cosas:
En los sistemas similares a Unix, init es el primer proceso que se ejecuta y el último antecesor de todos los procesos que se ejecutan. Es responsable de
ejecutar todos los scripts de inicio.
Le está diciendo al kernel de Linux que ejecute /bin/bash como init, en lugar de
el sistema init. […]
Por lo tanto, no está explotando nada, solo está utilizando una característica estándar del kernel.
Además, como se indica en un comentario, el rw
la bandera está separada de init=
, simplemente le dice al sistema que monte el sistema de archivos raíz como lectura y escritura (para que pueda, por ejemplo, editar el archivo mal configurado o cambiar una contraseña).