Ubuntu: rozwarłem plik sudoers, jak mogę to naprawić?

11

Edytowałem /etc/sudoersplik i zapisałem go, ale zawiera błąd składniowy. Teraz nie mogę, sudo vim /etc/sudoersponieważ sudo uważa, że ​​plik sudoers jest nieprawidłowy.

Jak mogę to naprawić?

Fred Basset
źródło
Zobacz askubuntu.com/a/73872/5078
belacqua

Odpowiedzi:

6

Uruchom system w trybie pojedynczym, a następnie edytuj.

Ignacio Vazquez-Abrams
źródło
Dzięki, moje Ubuntu działa pod Virtualbox. Jak uruchomić system w trybie pojedynczego użytkownika?
fred basset
Jednak nie dostaję opcji grub podczas rozruchu, uruchamia się bezpośrednio w Ubuntu ...
fred basset
Spróbuj przytrzymać <Ctrl> lub coś takiego.
Ignacio Vazquez-Abrams
1
@red basset: Gdy VM zacznie naciskać klawisz Esc kilka razy, co powinno upuścić cię do gruba, a następnie wybierz opcję trybu odzyskiwania.
user9517
21

Nigdy nie należy edytować pliku sudoers bezpośrednio. Użyj visudo- ochroni cię przed tymi błędami składniowymi w przyszłości.

Aby wyjść z tej sytuacji, uruchom komputer w trybie pojedynczego użytkownika i edytuj plik lub uruchom plik live i uruchom to samo.

EEAA
źródło
Dzięki, zastanawiałem się, co Visudo robi inaczej. Muszę się teraz dowiedzieć, jak uruchomić system w trybie pojedynczego użytkownika. Moje Ubuntu działa pod Virtualbox.
fred basset
1
visudo powoduje edycję kopii pliku sudoers. Zastąpi plik sudoers tylko wtedy, gdy zostanie zatwierdzony podczas zapisywania. Będzie używał edytora określonego przez zmienną EDITOR, więc możesz użyć preferowanego edytora. Można go również użyć w trybie sprawdzania, jeśli plik był edytowany i chcesz mieć pewność, że nadal jest poprawny.
BillThor,
2

Jak zauważono w tym podobnym pytaniu na askubuntu , może to działać dobrze bez konieczności ponownego uruchamiania w trybie pojedynczego użytkownika:

pkexec visudo
Tomek
źródło
Jest to zdecydowanie najłatwiejszy sposób na zrobienie tego, jeśli jest dostępny.
belacqua
1

Nawiasem mówiąc, jeśli masz hasło roota, po prostu zaloguj się i ustaw je z powrotem tak, jak było.

chmod 0440 / etc / sudoers

Pozwoli to uniknąć uruchamiania systemu w trybie pojedynczego użytkownika lub, co najgorsze, uruchamiania z obrazu na żywo.

W moim przypadku nie było mnie stać na wyłączenie serwera.

yaxzone
źródło
1

Jeśli masz zainstalowany Docker, a użytkownik jest członkiem dockergrupy, możesz łatwo wydostać się z tej marynaty (i niektórych innych) bez konieczności ponownego uruchamiania komputera lub tego, co masz:

  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. Napraw pliki problemów
  5. exit
Adrian Günter
źródło
Doker? Czy widziałeś Dockera gdziekolwiek w pierwotnym pytaniu?
Deer Hunter,
2
Ponieważ pytanie nie precyzuje niczego o środowisku pytającego i jest teraz 2015, co oznacza, że ​​sporo osób ma zainstalowanego Dockera, nie rozumiem ani twojego stosunku do mnie, ani twojej pogardy dla mojego wkładu. Nie jest w ogóle niezrozumiałe, że ktoś inny w tej sytuacji miałby zainstalowane oprogramowanie, które na dzień dzisiejszy jest oznaczone przez 23,5 tys. Osób w serwisie GitHub. Jeśli pkexecz jakiegoś powodu jest również niedostępny, zapewnia to alternatywną metodę, bez ponownego uruchamiania, która jest prawie tak szybka i prosta.
Adrian Günter,