Di recente ho scoperto che se modifico GRUB prima dell'avvio e aggiungo rw init=/bin/bash
Finisco con una shell di root.
Essendo in una condizione che voglio capire tutto vorrei sapere perché questo accade. Voglio dire, è un bug? è una caratteristica? è lì per aiutare gli amministratori a sistemare le cose perché funziona solo se hai accesso fisico a un computer?
È fornito da GRUB o dal kernel vero e proprio?
Risposta accettata:
Questa è una funzionalità e viene utilizzata per la manutenzione del sistema:consente a un amministratore di sistema di ripristinare un sistema da file di inizializzazione incasinati o modificare una password dimenticata.
Questo post nella mailing list di Red Hat spiega alcune cose:
Nei sistemi simili a Unix, init è il primo processo da eseguire e il
predecessore di tutti i processi mai eseguiti. È responsabile
dell'esecuzione di tutti gli script di inizializzazione.
Stai dicendo al kernel Linux di eseguire /bin/bash come init, piuttosto che
il sistema init. […]
Quindi, non stai sfruttando nulla, stai solo usando una funzionalità standard del kernel.
Inoltre, come notato in un commento, il rw
flag è separato da init=
, dice semplicemente al sistema di montare il file system di root in lettura-scrittura (così puoi, ad esempio, modificare il file configurato in modo errato o cambiare una password).