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 zainstalować motyw Paper GTK w systemie Linux

Jak zainstalować motyw Paper GTK w systemie Linux

Zainstaluj motyw Paper GTK z obsługiwanych repozytoriów systemu Linux, włącz go dla aplikacji GTK w GNOME Tweaks i zobacz, co starszy motyw może, a czego nie może zmienić.

Jak zainstalować środowisko graficzne UKUI w systemie Linux

Jak zainstalować środowisko graficzne UKUI w systemie Linux

Zainstaluj UKUI z oficjalnego archiwum Ubuntu, zapoznaj się z aktualną ścieżką pakietów Testing w Debianie i unikaj przestarzałych instrukcji Arch, które nie instalują już pełnego pulpitu.

Jak zainstalować Inkscape na Linuksie: Ubuntu, Fedora, Arch i inne

Jak zainstalować Inkscape na Linuksie: Ubuntu, Fedora, Arch i inne

Zainstaluj Inkscape z repozytoriów swojej dystrybucji Linuxa, stabilnej wersji PPA Ubuntu, Snap lub Flathub, korzystając z bieżących poleceń i uwag dotyczących wyboru źródła pakietu.

Jak zainstalować SABnzbd w systemie Linux i go skonfigurować

Jak zainstalować SABnzbd w systemie Linux i go skonfigurować

Zainstaluj SABnzbd na Ubuntu lub Debianie albo uruchom go w Dockerze na innym hoście z Linuksem. Następnie otwórz interfejs webowy i skonfiguruj dostawcę oraz foldery pobierania.

Jak zresetować zapomniane hasło w systemie Linux

Jak zresetować zapomniane hasło w systemie Linux

Odzyskaj dostęp do lokalnego konta Linux z uprawnieniami drugiego administratora lub w trybie odzyskiwania Ubuntu i dowiedz się, czego nie można odblokować poprzez zresetowanie hasła.

Jak nagrywać dźwięk z głośnika w systemie Linux za pomocą programu Audacity

Jak nagrywać dźwięk z głośnika w systemie Linux za pomocą programu Audacity

Przechwytuj dźwięk z pulpitu Linuksa w Audacity, kierując strumień nagrywania do źródła monitora urządzenia wyjściowego. Postępuj zgodnie z instrukcjami PulseAudio i PipeWire, wskazówkami dotyczącymi eksportu i poprawkami dla ścieżek cichych.

Jak korzystać z Dropboxa w systemie Linux: Zainstaluj i synchronizuj pliki

Jak korzystać z Dropboxa w systemie Linux: Zainstaluj i synchronizuj pliki

Zainstaluj Dropbox na Linuksie z oficjalnego pakietu, zaloguj się, zsynchronizuj folder lokalny, zarządzaj selektywną synchronizacją i sprawdzaj status z wiersza poleceń.

Jak zainstalować klienta poczty Hiri w systemie Linux

Jak zainstalować klienta poczty Hiri w systemie Linux

Zainstaluj Hiri na Linuksie za pomocą pakietu Snap lub oficjalnego archiwum tarball, dodaj program uruchamiający pulpit i sprawdź obsługiwane konta, a także ostrzeżenie dotyczące starej wersji Snap Hiri.

Jak uzyskać specyfikacje systemowe dla komputera z systemem Linux

Jak uzyskać specyfikacje systemowe dla komputera z systemem Linux

Sprawdź dystrybucję, jądro, procesor, pamięć, grafikę, pamięć masową i podłączone urządzenia za pomocą narzędzia Fastfetch i wbudowanych poleceń systemu Linux, a następnie zapisz przejrzysty raport.

Jak zainstalować i skonfigurować Plex na OpenMediaVault z Compose

Jak zainstalować i skonfigurować Plex na OpenMediaVault z Compose

Stara wtyczka OpenMediaVault Plex została zarchiwizowana. Skonfiguruj Plex na OMV 8 z OMV-Extras, wtyczką Compose, trwałym magazynem danych i oficjalnym kontenerem Plex.