GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Utilizzo di Sed per aggiornare il file Grub?

Sono nuovo nell'uso di sed ma sto imparando rapidamente ad amarlo per la sua flessibilità generale nell'automazione. Sto cercando di eseguire uno script con vari controlli di sicurezza ogni volta che distribuisco un nuovo sistema e parte di ciò richiede il blocco di GRUB. Sto cercando di sbloccare l'opzione generale di Ubuntu dal menu di GRUB in modo che chiunque possa usarla in seguito senza password, mantenendo tutto il resto protetto da password.

detto questo, sto cercando di cercare nel file /boot/grub/grub.cfg una riga specifica e aggiungere –unrestricted a tale opzione. (Usiamo solo 16.04.03 quindi tutti i sistemi avrebbero teoricamente lo stesso file al momento dell'installazione)

La riga nel file è:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

E voglio che assomigli a:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-2aa7ed2c-67a7-42d5-84fb-0ddab74c5dd0' {

So che sed -i è per la modifica sul posto e s/ dovrebbe cercare. Ma oltre a ciò, sono perso sulla sintassi qui per farlo fare effettivamente ciò di cui abbiamo bisogno. Per quanto posso dire, quel posizionamento di -unrestricted è necessario perché credo che sarebbe più facile se non dovessimo fare una ricerca così lunga, ma ancora una volta sono nuovo nel sed e non sono sicuro. Qualcuno potrebbe aiutarmi con questo inserimento sed? Preferibilmente spiegami anche perché una sintassi diversa va dove va, quindi so per il futuro.

Risposta accettata:

Ecco il comando.

sed -i "s/--class os/--class os --unrestricted/" filename

Questo sostituirà la riga nel file senza richiedere un file temporaneo, grazie all'opzione -i.

Se non importa dove nella riga va il "–senza restrizioni", potrebbe essere più semplice.

sed -i "s/'Ubuntu'/'Ubuntu' --unrestricted/" filename

Ubuntu
  1. Aggiorna Grub distrutto?

  2. Dividere un file in base a un insieme predefinito di righe?

  3. Il file Grub non può essere salvato dopo la modifica?

  4. Come aggiornare/aggiungere un file nell'immagine Docker

  5. 10 Esempi di comandi Sed (Stream Editor).

Sostituzione di String in Bash

Come aggiornare Grub su Ubuntu e altre distribuzioni Linux

Linux:impostare il kernel predefinito in Grub?

Debian – Come riparare Grub su Debian?

Utilizzo del comando Linux mv con esempi

Utilizzo del comando Linux sed con esempi