Ubuntu: borked il mio file sudoers, come posso ripararlo?


11

Stavo modificando il mio /etc/sudoersfile e l'ho salvato ma ha un errore di sintassi. Ora non posso sudo vim /etc/sudoersperché sudo pensa che il file sudoers non sia valido.

Come posso risolvere questo problema?


Risposte:


6

Avviare il sistema in modalità singola e quindi modificarlo.


Grazie, Ubuntu funziona su Virtualbox. Come si avvia in modalità utente singolo?
fred basset,


Non ho le opzioni grub al momento dell'avvio, ma si avvia direttamente su Ubuntu ...
bass basset

Prova a tenere premuto <Ctrl> o qualcosa del genere.
Ignacio Vazquez-Abrams,

1
@red basset: All'avvio di vm, premi Esc più volte che dovrebbe farti entrare in grub, quindi seleziona l'opzione della modalità di recupero.
user9517

21

Non dovresti mai modificare direttamente il tuo file sudoers. Usa visudo: ti proteggerà da questi errori di sintassi in futuro.

Per riprendersi da questa situazione, avviare in modalità utente singolo e modificare il file o avviare da un livecd e fare lo stesso.


Grazie, mi chiedevo cosa visudo facesse diversamente. Ho bisogno di capire ora come avviare in modalità utente singolo. Ubuntu è in esecuzione su Virtualbox.
bass basset il

1
visudo ti fa modificare una copia del file sudoers. Sostituirà il file sudoers solo se valido quando lo salvi. Utilizzerà l'editor specificato dalla variabile EDITOR, in modo da poter utilizzare l'editor preferito. Può essere utilizzato anche in modalità di controllo se il file è stato modificato e si desidera essere sicuri che sia ancora valido.
BillThor,

2

Come notato in questa domanda simile su askubuntu , questo potrebbe funzionare senza dover riavviare in modalità utente singolo:

pkexec visudo

Questo è di gran lunga il modo più semplice per farlo, se disponibile.
belacqua,

1

A proposito, se hai la password di root, accedi con essa e ripristinala come era.

chmod 0440 / etc / sudoers

Questo ti eviterà l'avvio in modalità utente singolo o, peggio ancora, l'avvio da livecd.

Nel mio caso non potevo permettermi di arrestare il server.


1

Se hai Docker installato e il tuo utente è un membro del dockergruppo, puoi facilmente uscire da questo pickle (e alcuni altri) senza riavviare o cosa-hai-te:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Ripara i file problematici
  5. exit

Docker? Hai visto Docker ovunque nella domanda originale?
Deer Hunter,

2
Poiché la domanda non specifica nulla sull'ambiente del richiedente e ora è il 2015, il che significa che alcune persone hanno installato Docker, non capisco né il tuo atteggiamento verso di me né il tuo disprezzo per il mio contributo. Non è affatto impossibile che qualcun altro in questa situazione abbia installato un software che, ad oggi, è stato interpretato da 23.5k persone su GitHub. Se pkexecanche per qualche motivo non è disponibile, questo fornisce un metodo alternativo, senza riavviare, che è quasi altrettanto rapido e semplice.
Adrian Günter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.