GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:perché Linux consente "init=/bin/bash"?

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).


Linux
  1. Linux:perché ci vuole così tanto tempo per rilevare una chiavetta USB?

  2. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

  3. 12 motivi per cui ogni amministratore di sistema Linux dovrebbe essere pigro

  4. 10 esempi di comandi insserv per gli script di inizializzazione del sistema Linux

  5. Perché Linux è simile a Unix se il suo kernel è monolitico?

Migliora la sicurezza del firewall del tuo sistema Linux

Linux:come si riavvia Gnome senza privilegi di root?

Linux:perché non è presente alcun file system Rootfs sul sistema?

Linux – Perché Setuid non funziona??

Linux:perché il kernel non può eseguire Init?

Linux – /sbin/init non esiste?