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')
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top