Zmieniono plik sudoers i nie można go już otworzyć; nie można otworzyć żadnego pliku przy użyciu roota

8

Zmieniłem ustawienia w pliku sudoers za pomocą

sudo visudo 

i zepsuło to. Teraz, gdy próbuję to zrobić ponownie lub otworzyć dowolny plik za pomocą sudo, nie mogę go już otworzyć i pojawia się następujący komunikat o błędzie:

>>> plik sudoers: błąd składniowy, wiersz 7 

Co teraz?

Czy jest jakiś sposób na wyjście z tego problemu (aby przywrócić ustawienia), czy też muszę zainstalować nową kopię systemu Linux?

Powodem, dla którego to wszystko dostałem jest to, że nacisnąłem „Q”, gdy mówiono mi, że jest jakiś błąd, co było dla mnie bardzo głupie.

Dzięki.

EDYTOWAĆ

Mój plik sudoers nie różni się od zwykłego pliku sudoers. Właśnie dodałem wiersz timestamp_timeout = 0 w tym pliku i powstały wszystkie te problemy. Zrobiłem to, co zasugerował James, a nawet usunąłem tę linię (timestamp_timeout = 0). Zmieniłem uprawnienia do pliku na 0440, o które prosił, a następnie uruchomiłem się normalnie. Następnie pojawia się ten sam komunikat o błędzie

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
jak powyżej.

Co mam teraz zrobić ??

EDYCJA 2 Rozwiązane

Oto co zrobiłem:

  1. Uruchom za pomocą LIVECD
  2. Usuń stary plik sudoers
  3. Utworzyłem nowy plik sudoers i skopiowałem wszystko do tego pliku, tj. Minimalne ustawienia konfiguracji, które na szczęście zapisałem w innym pliku
  4. Zmieniono uprawnienia do pliku na 0440
  5. Zrestartuj ponownie normalnie z dysku twardego

Hurra !!

Karlo
źródło
możesz wkleić zawartość pliku sudoers na www.pastebin.com i pozwól nam rzucić okiem, prawdopodobnie najszybszym sposobem.
Andrioid
Szukałbym brakującego # w komentarzach, brakujących dwukropków, znaków równości, odwrotnych ukośników kontynuacji linii itp.
Wstrzymany do odwołania.

Odpowiedzi:

8

Zakładając, że nie podałeś użytkownikowi root hasła, najłatwiejszym sposobem na jego naprawienie jest użycie płyty CD na żywo, takiej jak Knoppix . Rozruch płyty CD. Podłącz dysk lokalny, edytuj plik, odmontuj dysk i uruchom ponownie.

James
źródło
6

Proste: uruchom komputer w trybie pojedynczego użytkownika, wykonując następujące czynności:

  1. Restart
  2. Kiedy Grub się rozpocznie, naciśnij ESC (lub Escape)
  3. Naciśnij „e”, aby edytować bieżący wiersz
  4. Dodaj „single” na końcu linii zawierającej „linux”
  5. Boot (naciśnij b)

Spowoduje to uruchomienie komputera z jednym użytkownikiem, rootem. Następnie wykonaj następujące kroki:

  1. / usr / bin / vim / etc / sudoers (lub użyj nano, może być dla Ciebie łatwiejsze), aby rozwiązać problem
  2. Jeśli nie masz pewności co do problemu, spróbuj skopiować dołączony przykład sudoers z „/ usr / share / doc / sudo / Examples” (różni się) i oczywiście dodaj tam swojego użytkownika.
  3. Zapisz plik, zamknij Vima
  4. Uruchom ponownie, ciesz się!
Andrioid
źródło
Zastanawiałem się, kiedy poprosi o hasło, zanim da pojedynczą powłokę?
James
Ta metoda nie działa dla wszystkich dystrybucji. Ponieważ są to dobrze znane tylne drzwi, niektóre dystrybucje wymuszają logowanie, zanim pojawi się monit root. Wygląda na to, że tak jest w przypadku ciebie, James.
Telemachus
Nie wiedziałem, że dystrybucje zaczęły to robić, zawsze działało dla mnie w starych dobrych czasach Slackware
Andrioid
Powinieneś polecić użycie visudo zamiast vim: en.wikipedia.org/wiki/Visudo
3

Pomysł Jamesa na użycie płyty CD na żywo (zakładając, że konto root nie jest włączone) jest dobry. Dodałbym kilka punktów.

  • Po pierwsze, możesz mieć szczęście, a kopia pliku / etc / sudoers została automatycznie zapisana podczas edycji. Sprawdź w / etc plik, który wygląda tak sudoers~ (możesz cdprzejść do tego katalogu i uruchomić ls -A bez uprawnień roota, nawet jeśli nie możesz czytać ani edytować plików jako zwykły użytkownik). Niektórzy edytorzy utworzą taką kopię zapasową, jeśli w ogóle możliwe, więc możesz mieć taki, który nie został utworzony jawnie.
  • Po drugie, jeśli nie masz pojęcia, jak edytować plik, możesz rozważyć opublikowanie go (lub obszaru wokół linii 7) tutaj lub w innym miejscu. Chociaż sam plik ma związek z bezpieczeństwem, nie ma w nim haseł, więc opublikowanie go nie powoduje natychmiastowej szkody.
  • Na koniec zauważ, że komunikat o błędzie, taki jak ten, który widziałeś, niekoniecznie oznacza, że ​​sam problem występuje dosłownie w linii 7. Błąd może być w linii 4, ale został wyłączony, że tak powiem, w linii 7.
Telemachus
źródło
0

Spróbuj nacisnąć e, aby edytować. Powinno to pozwolić Ci edytować plik i poprawić błędy.

Torandi
źródło
Naciśnięcie klawisza „e” po wyświetleniu błędu po zakończeniu edycji spowoduje powrót do niego, aby można było naprawić błędy. Niestety nie jest to wyraźnie wymienione.
0

Dla tych z nas, którzy nie mają konsoli lub lokalnego dostępu do serwera, aby uruchomić komputer z poziomu 1 lub mają ustawiony root (lub dostępne poświadczenia / certyfikaty), użyj pkexec visudo lub pkexec vi / etc / sudoers, visudo jest lepsze ponieważ sprawdza błędy w pliku.

zaraz
źródło
Ale jak możesz pkexeclicytować, jeśli nie znasz hasła roota?
Scott