sudo: nie można stat / etc / sudoers: Brak takiego pliku lub katalogu - Plik istnieje

12

Jestem jedną z niewielu osób zarządzających serwerem gier. Na serwerze działa obecnie Ubuntu 14.04, który został zainstalowany zaledwie 3 tygodnie temu.

Wszystko działało dobrze jeszcze kilka dni temu, mieliśmy kilka problemów. Podejrzewam, że ktoś włamał się na nasz serwer SSH i udało mu się poważnie coś zepsuć.

Kiedy próbuję wykonać polecenie sudo, pojawia się następujący błąd:

sudo: unable to stat /etc/sudoers: No such file or directory

Pierwszą myślą jest to, że plik został usunięty i po prostu trzeba go odtworzyć, jednak ls /etc/pokazuje, że plik sudoers już istnieje. Co więcej, po edycji za pomocą nano (mojego preferowanego edytora) staje się jasne, że plik jest w pełni taktowany i poprawnie sformatowany.

ls -lpokazuje również, że plik sudoers ma uprawnienia -r--r----do -rwxrwx---rootowania użytkownika i rootowania grupy, które z badań powinny być całkowicie wystarczające, aby sudo mógł odczytać plik, aby mieć pewność, że tymczasowo dałem plik rootowi rootowi (korzystałem z tmuxa do sesji kontrola i mieliśmy już sesję jako root), nadal nie udało się.

Tak więc plik istnieje, zawartość w nim jest poprawna, ma odpowiednie uprawnienia. Co jeszcze może być. Spojrzałem trochę na ludzi, którzy mieli podobne problemy tutaj na askubuntu.com, jednym z rozwiązań, które moim zdaniem brzmiało obiecująco, było utworzenie kopii zapasowej pliku sudoers, a następnie użycie: apt-get purge sudo apt-get install sudo

A następnie zamień nowy plik sudo na stary. To niestety nie zadziałało. Aby wykluczyć, że plik sudoers nie zawierał błędów, spróbowałem ponownie rozwiązać problem i spróbowałem uruchomić tylko sudoz nowo utworzonym plikiem sudoers i dostałem ten sam błąd.

-------- EDYTOWAĆ --------

Dla wszystkich zainteresowanych tym, co zawiera rzekomo nieistniejący plik sudoers, oto odfiltrowana wersja (nazwy użytkowników filtrowane) według żądania: http://paste.ubuntu.com/7781967/

D3_JMultiply
źródło
1
Za pomocą paste.ubuntu.com możesz opublikować zawartość pliku sudoers (możesz chcieć usunąć nazwy użytkowników dla zwiększenia bezpieczeństwa - jeśli twój serwer został zhakowany ZMIEŃ HASŁO)
Wilf
Hasła zostały już zmienione. To nie jest część pytania. Post został zaktualizowany za pomocą linku paste.ubuntu.com.
D3_JMultiply
1
Według strony podręcznika sudoers Znak funta ('#') służy do wskazania komentarza (chyba że jest on częścią dyrektywy #include lub chyba, że ​​występuje w kontekście nazwy użytkownika, po której następuje jedna lub więcej cyfr, w który przypadek jest traktowany jako UID). W twoim pliku sudoers brakuje # w dyrektywie includedir. Spróbuj dodać # i zobaczmy, czy polecenie sudo działa.
Lety,
Nie. To nie rozwiązało problemu. Jak powiedziałem w OP, zmieniłem nazwę pliku sudoers i ponownie zainstalowałem sudo, co stworzyło świeżo zainstalowaną wersję pliku sudoers. Ten plik też nie działał. Wiem, że problemem nie jest zawartość samego pliku. W każdym razie dzięki :)
D3_JMultiply

Odpowiedzi:

9

Dobrze. Naprawiłem swój problem. I tak jak myślałem, to nie był plik.


Rozwiązanie

Miałem do 10 minut temu, zauważyłem tylko, że sudo nie działa. Ponieważ większość mojej pracy odbywa się w tmux, nigdy nie zauważyłem mojego konta użytkownika.

Po pierwszym zalogowaniu dostaję następujący błąd:

-bash: /etc/profile Permission denied

I ustawiłoby mnie na: I have no name@<ipaddress>jako moje konto.

Zrobiłem więc trochę badań na ten temat i znalazłem więcej wyników niż drugi. W tym jeden wynik, który idealnie pasuje do mojej sytuacji, jak tutaj .

Problem polegał na tym, że w moim folderze / etc / brakowało uprawnienia do wykonywania w grupie. Wykonanie: chmod g+x /etcnaprawiono problem po wylogowaniu i ponownym zalogowaniu.


Dzięki

Dzięki za pomoc w komentarzach, sugestie, które podałeś były nadal cenne i pomogły bardziej zawęzić problem. W końcu było to o wiele prostsze, niż się wydawało.

D3_JMultiply
źródło