Włącz sudo bez hasła jako określony użytkownik

26

Mam w systemie dwóch użytkowników: itsadokmojego głównego użytkownika oraz elasticsearchużytkownika z innym ulimitem do uruchamiania ElasticSearch.

Chciałbym móc uruchamiać rzeczy jako dodatkowy użytkownik bez konieczności każdorazowego pytania o hasło.

Dodałem następujący wiersz do /etc/sudoers:

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

W moim rozumieniu powinno to umożliwić użytkownikowi jegoadok na dowolnym hoście uruchomienie dowolnej komendy jako wyszukiwania elastycznego (użytkownika lub grupy) bez hasła. Jednak próbowanie czegoś takiego

itsadok@dev001$ sudo -u elasticsearch ls

monituje mnie o hasło. Ponowne uruchomienie maszyny nie pomogło.

Co ja robię źle?

AKTUALIZACJA :

Okazuje się, że kolejność linii sudoersjest znacząca. Umieściłem wiersz w „Specyfikacji uprawnień użytkownika”, co brzmiało jak właściwe miejsce, ale wiersz dla %admingrupy, która później pojawi się, przesłania to ustawienie.

Umieszczenie tej samej linii na końcu pliku sudoers rozwiązało problem.

itsadok
źródło

Odpowiedzi:

12

Poprawiona odpowiedź z komentarzy: jeśli umieścisz poniżej dyrektywy #includedir, zostaną one zignorowane. Przenieś linię obok definicji sudolub admingrupy lub umieść ją w osobnym pliku w /etc/sudoers.d/.

Tuminoid
źródło
Nie działało Ponadto plik już nie zawierał root ALL=(ALL:ALL) ALLspacji wokół dwukropka, więc nie wydaje się to właściwe. Dla bezpieczeństwa, próbowałem właśnie (elasticsearch). Nie działa
itsadok
Masz rację, to działa bez białych znaków przynajmniej w 12.10. Którego Ubuntu używasz i gdzie dokładnie sudoersumieszczasz tę linię? Mam słabe wspomnienie, że jeśli na starszych systemach umieściłeś linię po raz pierwszy #includedir, została zignorowana. Jeśli plik znajduje się na końcu pliku, spróbuj wstawić go nad załączony plik.
Tuminoid
1
Twój komentarz ustawił mnie na właściwej drodze: kolejność wpisów ma znaczenie. Późniejsze ustawienia zastępują wcześniejsze ustawienia.
itsadok
16

Wykonaj następujące kroki:

  1. Edytuj plik sudoers (może być obecny w /etc/sudoers.d/nazwa_pliku)
sudo visudo -f /etc/sudoers
  1. Dodaj wiersz na końcu pliku
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. Zapisz plik
esc :wq!
jatashankar shukla
źródło
To pozwala użytkownikowi uruchamiać wszystkie polecenia na wszystkich hostach bez haseł jak każdy użytkownik, ale nie przyznaje żadnych uprawnień grupowych, co było częścią pierwotnego pytania. Zasadniczo jest to zła rada, ponieważ dajesz użytkownikowi bardzo szerokie uprawnienia.
d4nyll