Błąd w /etc/sudoers Możesz usunąć ostatnie uprawnienia administratora, gdy sesja SSH jest nadal aktywna. Ryzyko często wynika z źle napisanej reguły, nieprawidłowej ścieżki polecenia lub zbyt szybkiego dodania pliku. /etc/sudoers.d.
Nigdy nie edytuję plików sudoers przy użyciu edytora uruchamianego bezpośrednio na pliku. wizualizacja Zablokuj konfigurację podczas edycji i sprawdź jej składnię przed zapisaniem. Na serwerze zdalnym utrzymuj również otwartą drugą sesję root do czasu ostatniego testu. Ta siatka bezpieczeństwa jest równie ważna, jak samo polecenie.

Przed modyfikacją reguły sprawdź dostęp sudo
Najpierw sprawdź, czy Twoje konto nadal ma uprawnienia sudo i sprawdź, do jakich poleceń jest uprawnione:
sudo -v
sudo -l
grupy
sudo -v sudo -l Wyświetla reguły faktycznie zastosowane do konta. Jeśli ten krok się nie powiedzie, nie zmieniaj ustawień sudoers w tej sesji.
Następnie otwórz drugi terminal i utrzymuj tam sesję roota:
sudo -tj
Kto
Nie zamykaj tej sesji podczas edycji. Na komputerze zdalnym sprawdź również dostęp do konsoli, KVM lub panelu ratunkowego. Przewodnik po Konta i grupy w systemie Linux może pomóc Ci potwierdzić konto docelowe przed udzieleniem mu uprawnień.
Przed edycją skopiuj plik główny do folderu zarezerwowanego dla użytkownika root. Opcja -ma zachowuje w szczególności właściciela, grupę i tryb:
sudo cp -a /etc/sudoers "/root/sudoers.backup-$(date +%F-%H%M)"
W wielu dystrybucjach, /etc/sudoers należy do korzeń: korzeń z trybem czterysta czterdzieściNie koryguj uprawnień losowo, jeśli Twoja dystrybucja korzysta z innej polityki. Najpierw zanotuj aktualny stan i zachowaj dokładną ścieżkę do kopii zapasowej.
Edytuj plik główny za pomocą visudo
Aby otworzyć główną konfigurację, wystarczy uruchomić:
sudo visudo
wizualizacja Tworzy blokadę, aby uniemożliwić dwie równoczesne edycje. Po zamknięciu analizuje składnię i zazwyczaj odmawia zainstalowania nieprawidłowej konfiguracji. Jeśli narzędzie zgłosi błąd, wróć do edytora i popraw go. Nie wymuszaj zapisywania pliku, którego nie rozumiesz.
Reguła sudoers zazwyczaj opiera się na następującej logice: użytkownik lub grupa, zaangażowane hosty, tożsamość wykonania, a następnie autoryzowane polecenia. Aby autoryzować konto Alicja Aby ponownie uruchomić i sprawdzić tylko Nginx, najpierw sprawdź ścieżkę binarną:
polecenie -v systemctl
Jeśli polecenie powróci /usr/bin/systemctlReguła może mieć następującą formę:
alice ALL=(root) /usr/bin/systemctl jest aktywny nginx, /usr/bin/systemctl restart nginx
Nie używać BRAK HASŁA Z przyzwyczajenia. Aby zautomatyzować, ogranicz się do jednego konta, jednego polecenia i kontrolowanych argumentów. Ogólna zasada przyznająca dostęp do powłoki, edytora lub polecenia, które może uruchamiać inne programy, często oznacza przyznanie pełnych uprawnień roota.
W przypadku reguły specyficznej dla działu lub zespołu wolę osobny fragment niż duży plik główny. Otwórz go za pomocą opcji :
sudo visudo -f /etc/sudoers.d/administration
Wybierz prostą nazwę bez spacji, kropek i znaków specjalnych, np. ~ @includedir Używane przez dystrybucję, niektóre nazwy mogą być ignorowane. Po rejestracji sprawdź właściciela i tryb:
sudo chown root:root /etc/sudoers.d/administration
sudo chmod 0440 /etc/sudoers.d/administration
Ogólny samouczek dot szczegółowo opisuje delegowanie według użytkowników, grup i aliasów. W tym przypadku cel pozostaje węższy: zainstalowanie weryfikowalnej reguły bez utraty możliwości powrotu do poprzedniej wersji.
Przed testowaniem należy potwierdzić całą konfigurację.
Po zakończeniu edycji uruchom pełne sprawdzenie. To polecenie weryfikuje plik główny i zawarte w nim odniesienia:
sudo visudo -c
Wynik powinien wskazywać, że analizowane pliki są poprawne składniowo. Jeśli zostanie zgłoszony fragment, otwórz ponownie ten sam plik za pomocą visudo -fNie uruchamiaj ponownie komputera ani nie zamykaj sesji roota, dopóki sprawdzanie nie zakończy się niepowodzeniem.
Następnie wyświetl uprawnienia konta docelowego z poziomu zachowanej sesji głównej:
Odczyt ten umożliwia zidentyfikowanie reguły, która nie została załadowana, nieprawidłowej nazwy użytkownika lub znacznie szerszego zakresu autoryzacji niż oczekiwano.
Przetestuj w nowej sesji przed zamknięciem roota
sudo -k
sudo -v
sudo -l
sudo systemctl status nginx
Sprawdź również, czy nieoczekiwane polecenie nadal jest odrzucane. Reguła jest poprawna, jeśli użytkownik zachowuje oczekiwany dostęp bez uzyskiwania dodatkowych uprawnień. Zamknij sesję roota kopii zapasowej dopiero po tym teście.
Jeśli
cp -a /root/sudoers.backup-RRRR-MM-DD-GGMM /etc/sudoers
visudo -c
Jeśli wszystkie sesje administratora są już zamknięte, użyj konsoli dostawcy, trybu odzyskiwania lub środowiska uruchomieniowego, aby zamontować system i naprawić konfigurację. Edycja sudoers z konta bez uprawnień nie zadziała.
Aby zrozumieć odmowę po pomyślnej weryfikacji, sprawdź zdarzenia sudo bieżącego uruchomienia, a następnie dziennik uwierzytelniania, jeśli Twoja dystrybucja z niego korzysta:
sudo journalctl -t sudo -b --no-pager
sudo tail -n 100 /var/log/auth.log
Tam Strona podręcznika Visudo dokumentuje blokowanie, sterowanie i opcje -F. Dokumentacja sudoers(5) Opisuje składnię, inkluzje i reguły poleceń. Przede wszystkim należy zachować następującą kolejność: dostęp do kopii zapasowej, zapisywanie, edycja za pomocą wizualizacja