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ć?


Odpowiedzi:


6

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


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.


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

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.


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

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.