GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare Pkexec per non richiedere la password?

Ho un'applicazione GUI che deve chiamare un demone (scritto in Python) con privilegi di superutente. Vorrei farlo senza richiedere all'utente una password.

Poiché 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 mio errore potrebbe compromettere gravemente la sicurezza del sistema.

Quello che normalmente farei in questa situazione è aggiungere una riga in /etc/sudoers che consente agli utenti di eseguire il demone come root senza password, utilizzando la direttiva NOPASSWD. Funziona bene dalla riga di comando. Tuttavia, quando lo faccio dalla GUI, un pkexec viene visualizzata la finestra di dialogo che richiede la password dell'utente. Sembra che su Ubuntu chiami sudo dalla GUI vengono in qualche modo intercettati da pkexec .

C'è un modo pulito per aggirare questo? Preferirei davvero non dover affrontare le seccature di una sceneggiatura setuida.

Migliore risposta

È improprio dire che:"Sembra che su Ubuntu chiami a sudo dalla GUI vengono in qualche modo intercettati da pkexec . pkexec non ha molto in comune con sudo . In contrasto con sudo , pkexec non concede l'autorizzazione di root a un intero processo, ma consente piuttosto un livello più fine di controllo della politica del sistema centralizzato.

Ora, se vuoi eseguire un'applicazione GUI senza che ti venga richiesta una password da pkexec , questo non è difficile da fare. Prendiamo ad esempio GParted . Quando lo apri, vedrai la seguente finestra di dialogo che ti chiede una password:

Fai clic su Dettagli e la finestra di dialogo sarà ora simile a:

Da qui tutto ciò che devi fare è aprire /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy file utilizzando ad esempio il seguente comando:

gksu gedit /usr/share/polkit-1/actions/com.ubuntu.pkexec.gparted.policy

e modifica le seguenti righe:

      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>

con i seguenti:

      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>

Salva il file e chiudilo. Successivamente, quando aprirai GParted non ti verrà più chiesta una password.

Correlati:è possibile con Gedit o la riga di comando modificare ogni quarta riga di un file di testo?
Ubuntu
  1. Come configurare la privacy della directory in cPanel

  2. Come digitare la password per più finestre?

  3. Come configurare il desktop per un indirizzo IP statico?

  4. La console può essere sospesa e chiedere una password alla riattivazione?

  5. Come devo configurare il supporto per il taglio per i volumi logici Lvm?

Come configurare Openbox per il tuo desktop Linux

Come configurare il proxy inverso Nginx per Kibana

Come configurare Kubernetes per l'aggiornamento in sequenza

Come configurare la rete con bridge per KVM su Ubuntu 16.04 / 14.04 / Debian 9

Come configurare il periodo di inattività per il blocco automatico dello schermo?

Come configurare i "tasti del mouse"?