Jak uruchomić sudo bez hasła w systemie Linux

Możesz uruchomić sudo bez hasła , dodając NOPASSWDregułę do polityki sudoers. Najbezpieczniejszym rozwiązaniem jest zezwolenie tylko na konkretne polecenie administracyjne, zamiast wyłączania monitu o podanie hasła dla każdego polecenia sudo.

Zanim cokolwiek zmienisz, pamiętaj, co robi to ustawienie: każdy, kto uzyska kontrolę nad Twoim zalogowanym kontem, może uruchomić dozwolone polecenie jako użytkownik root bez konieczności ponownego uwierzytelniania. W podręczniku sudoers opisano NOPASSWDtag, który usuwa uwierzytelnianie dla pasujących poleceń.

Dlaczego sudo -s nie jest metodą sudo bez hasła

Starsza rada dotycząca uruchomienia sudo -snie konfiguruje w rzeczywistości sudo bez hasła. -sOpcja uruchamia powłokę w sudo, ale zasady sudo nadal mogą wymagać wcześniejszego uwierzytelnienia. Możesz również zobaczyć kilka poleceń uruchomionych bez kolejnego monitu, ponieważ sudo zazwyczaj buforuje pomyślne uwierzytelnienie na krótki czas. To różni się od NOPASSWDreguły stałej.

Uruchom określone polecenie sudo bez hasła

Ten przykład pozwala użytkownikowi alexzrestartować Nginx bez hasła. Zastąp nazwę użytkownika, polecenie i argumenty wartościami odpowiadającymi Twojemu systemowi.

1. Potwierdź swoją nazwę użytkownika i ścieżkę polecenia

Uruchom następujące polecenia jako zwykły użytkownik:

whoami
command -v systemctl

Drugie polecenie może zwrócić /usr/bin/systemctl. Użyj ścieżki podanej przez Twój system. Reguły sudoers powinny identyfikować polecenia na podstawie pełnej ścieżki.

Terminal Linux pokazujący whoami i polecenie -v systemctl w celu zidentyfikowania nazwy użytkownika i pełnej ścieżki polecenia
Przed napisaniem reguły sudoers sprawdź nazwę konta i pełną ścieżkę polecenia.

2. Utwórz dedykowany plik typu „sudoers”

Zamiast edytować /etc/sudoersbezpośrednio, użyj visudoz plikiem w /etc/sudoers.d:

sudo visudo -f /etc/sudoers.d/alex-nopasswd

Zazwyczaj w tym kroku konfiguracji należy wprowadzić hasło. visudoJest to preferowane, ponieważ sprawdza składnię przed zaakceptowaniem zmian. W podręczniku Ubuntu Visudo zaznaczono również, że visudoblokuje plik podczas edycji i sprawdza go pod kątem błędów parsowania.

Terminal Linux otwierający dedykowany plik sudoers.d za pomocą sudo visudo w celu konfiguracji sudo bez hasła
Otwórz osobny plik sudoers, visudozamiast edytować główny plik zasad przy użyciu zwykłego edytora tekstu.

3. Dodaj najwęższą regułę NOPASSWD, jakiej potrzebujesz

W przykładzie ponownego uruchomienia Nginx dodaj:

alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Ta reguła zezwala na uruchamianie tylko poleceń z tymi argumentami jako root bez uwierzytelniania. Aby zezwolić na wykonywanie kilku konkretnych poleceń, rozdziel specyfikacje poleceń przecinkami.

Jeśli celowo chcesz, aby każde polecenie sudo dla jednego użytkownika pomijało uwierzytelnianie, ogólna zasada jest taka:

alex ALL=(ALL:ALL) NOPASSWD: ALL

To znacznie mniej bezpieczne rozwiązanie i rzadko stanowi najlepszy wybór na stacji roboczej lub w systemie współdzielonym. Zhakowana sesja użytkownika miałaby bezpośredni dostęp do nieograniczonych uprawnień roota.

Edytor Nano pokazujący regułę sudoers NOPASSWD dla ponownego uruchomienia nginx i skomentowany przykład bez ograniczeń
Reguła specyficzna dla polecenia jest bezpieczniejsza niż udzielanie NOPASSWD: ALL.

4. Sprawdź i przetestuj regułę

Po zapisaniu i opuszczeniu edytora należy sprawdzić pełną politykę sudoers:

sudo visudo -c

Nie pomijaj tego sprawdzenia. visudoDokumentacja wyjaśnia, że ​​polityka sudoers jest oceniana jako całość, więc sprawdzenie pełnej konfiguracji pozwala wykryć problemy, które mogą dotyczyć dołączonych plików.

Następnie unieważnij wszystkie zapisane w pamięci podręcznej dane uwierzytelniające sudo i przeprowadź test w trybie nieinteraktywnym:

sudo -k
sudo -n /usr/bin/systemctl restart nginx

Ta -nopcja powoduje, że sudo nie będzie pytać o hasło. Jeśli reguła jest zgodna, polecenie zostanie wykonane bez pytania o hasło. Jeśli uwierzytelnienie jest nadal wymagane, sudo zakończy działanie z błędem, zamiast czekać na podanie hasła. Jest to sudo -nszczególnie przydatne w przypadku skryptów, które nigdy nie powinny zawieszać się na monicie o hasło.

Terminal Linux sprawdzający poprawność sudoers za pomocą visudo -c, czyszczący dane uwierzytelniające z pamięci podręcznej i testujący polecenie NOPASSWD za pomocą sudo -n
Sprawdź poprawność zasad, wyczyść dane uwierzytelniające z pamięci podręcznej i użyj polecenia, sudo -naby potwierdzić, że polecenie na pewno nie wymaga już podawania hasła.

Rozwiązywanie problemów z sudo bez hasła

  • Polecenie nadal prosi o podanie hasła: sprawdź, czy nazwa użytkownika, ścieżka polecenia i argumenty dokładnie odpowiadają wpisowi sudoers.
  • Polecenie jest niedozwolone: ​​uruchom sudo -l, aby sprawdzić uprawnienia przypisane do Twojego konta.
  • Wygląda na to, że opcja „drop-in” jest ignorowana: użyj prostej nazwy pliku, takiej jak alex-nopasswd. Niektóre konfiguracje sudoers ignorują pliki, /etc/sudoers.dktórych nazwy zawierają kropkę lub kończą się sufiksami w stylu kopii zapasowej.
  • Musisz cofnąć zmianę: otwórz ponownie moduł za pomocą sudo visudo -f /etc/sudoers.d/alex-nopasswd, usuń lub zawęź regułę, zapisz i uruchom sudo visudo -cponownie.

Najlepsze praktyki

Używaj sudo bez hasła tylko wtedy, gdy zachodzi konkretna potrzeba, na przykład w przypadku ściśle kontrolowanej akcji serwisowej lub zadania automatyzacji. Preferuj dokładną ścieżkę polecenia i dokładne argumenty, unikaj ich, NOPASSWD: ALLgdy to możliwe, i ogranicz regułę sudoers do minimum, na jakie pozwala zadanie. Dzięki temu zachowasz większość ochrony sudo, jednocześnie eliminując monit o podanie hasła tam, gdzie jest to rzeczywiście konieczne.

Zostaw komentarz

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.