Ho un'applicazione GUI che deve chiamare un demone (scritto in Python) con privilegi di superutente. Vorrei farlo senza richiedere all'utente una password.
Dato che il demone è uno script, non posso impostare direttamente il bit SUID. Potrei scrivere un wrapper C per questo, ma preferirei non reinventare la ruota, soprattutto quando un errore da parte mia potrebbe portare alla grave compromissione della sicurezza del sistema.
Quello che normalmente farei in questa situazione è aggiungere una riga /etc/sudoers
che consenta agli utenti di eseguire il demone come root senza password, usando la direttiva NOPASSWD. Funziona bene dalla riga di comando. Tuttavia, quando lo faccio dalla GUI, viene pkexec
visualizzata una finestra di dialogo che richiede la password dell'utente. Sembra che su Ubuntu, le chiamate sudo
dalla GUI vengano in qualche modo intercettate da pkexec
.
C'è un modo pulito per aggirare questo? Preferirei davvero non dover affrontare le seccature di una sceneggiatura setuid.
sudo somecommand
, la finestra di dialogo che viene visualizzata è una pkexec
finestra di dialogo della password, indipendentemente dal fatto che esista un criterio sudoers che consente l'esecuzione del programma.