Come per ottenere i privilegi di root in pitone tramite un sudo grafica?
Domanda
Una parte del mio programma Python ha bisogno di accesso come amministratore. Come posso ottenere i privilegi di root utilizzando un popup GUI simile al comando gksudo
?
Ho solo bisogno di privilegi di root per una piccola parte del mio programma in modo che sarebbe preferibile avere solo i privilegi per una particolare funzione.
Spero di essere in grado di fare qualcosa di simile:
gksudo(my_func, 'description of why password is needed')
Soluzione
Hai due opzioni qui:
Si dovrà fare la parte del programma che richiede i privilegi di root un file separato e quindi eseguire il file in questo modo:
>>> import subprocess
>>> subprocess.call(['gksudo','python that_file.py'])
che porterà la richiesta di password ed eseguire that_file.py come root
Si potrebbe anche richiedere che un programma di essere eseguito come root fin dall'inizio e solo il tipo di utente del programma "sudo python your_program.py" nella riga di comando fin dall'inizio che ovviamente non è la migliore idea se il programma è normalmente lanciato da un menu.
Altri suggerimenti
sudo può essere utilizzato per lanciare programmi in esecuzione con privilegi di amministratore. La parte dell'applicazione che deve essere eseguito come root, deve poter essere invocata come un processo separato dalla linea di comando. Se avete bisogno di qualche forma di comunicazione tra i due, è possibile utilizzare i socket o guardare per un file, ecc.