Există câteva sugestii cu indicii despre cum ar putea fi realizat acest lucru. Mi se pare că repornire
comanda Elasticsearch nu ar trebui să aibă nevoie de privilegii de root, cel puțin în cazul meu de utilizare.
Practic, în cazul în care serviciul ES se oprește, nu vreau ca utilizatorul programului să aibă responsabilitatea de a-l reporni, iar programul, după ce detectează că serviciul este inactiv/mort dintr-un motiv oarecare, ar trebui să încerce doar să îl repornească.
Se pare că există o modalitate de a modifica aceste permisiuni folosind sudo visudo
, dar nu sunt complet clar ce să fac: vreau să permit tuturor utilizatorilor să facă o singură comandă systemctl
:
systemctl reporniți elasticsearch
Fișierul /etc/sudoers.tmp care apare după sudo visudo
în primul rând spune „Vă rugăm să luați în considerare adăugarea de conținut local în /etc/sudoers.d/ în loc să modificați direct acest fișier”. Toate cele 3 fișiere aflate în prezent în acel director par a fi binare.
În al doilea rând, este împărțit în diferite secțiuni pe care le găsesc destul de derutante: „Specificație de alias gazdă/Utilizator/Cmnd”, etc. M-am uitat la pagina de manual pentru SUDOERS, dar acest lucru mă face în principal să îmi dau seama cât de ignorant sunt .
Mai este ceva: când o comandă care necesită sudo
(chiar și atunci când comanda nu începe de fapt cu cuvântul „sudo”) este rulată folosind subproces.run
, apare o casetă de dialog în Linux care spune „vă rugăm introduceți parola”. Dacă se dovedește că de fapt sistemul NU a fost configurat să permită systemctl reporniți elasticsearch
pentru a fi condus de oricine, vreau să detectez asta și să scot un mesaj potrivit, mai degrabă decât să apară acest dialog care să solicite parola privilegiilor de root. Există vreo modalitate de a detecta asta? ...sau poate interceptarea sistemului înainte de a cere parola de privilegii root?