Cómo obtener privilegios de root en Python a través de una gráfica sudo?

StackOverflow https://stackoverflow.com/questions/4112737

  •  29-09-2019
  •  | 
  •  

Pregunta

Una parte de mi programa de Python necesita acceso de administrador. ¿Cómo puedo obtener privilegios de root utilizando una interfaz gráfica de usuario emergente similar al comando gksudo?

Sólo necesita privilegios de root para una pequeña parte de mi programa por lo que sería preferible sólo para tener los privilegios para una función particular.

Estoy esperando a ser capaz de hacer algo como:

gksudo(my_func, 'description of why password is needed')
¿Fue útil?

Solución

Existen dos opciones aquí:

Se tendrá que hacer la parte del programa que requiere privilegios de root en un archivo separado y luego ejecutar el archivo de la siguiente manera:

>>> import subprocess
>>> subprocess.call(['gksudo','python that_file.py'])

que le mostrará la contraseña pronta y ejecutar that_file.py como root

También podría requerir que un programa se ejecute como root desde el principio y sólo tienen el tipo de usuario del programa "sudo python your_program.py" en la línea de comandos desde el principio que obviamente no es la mejor idea si su programa es normalmente lanzado desde un menú.

Otros consejos

sudo puede usarse para lanzar programas que se ejecutan con privilegios de administrador. La parte de la aplicación que necesita para ejecutarse como root, debe poder ser invocada como un proceso independiente de la línea de comandos. Si necesita alguna forma de comunicación entre los dos, usted podría utilizar sockets o reloj para un archivo, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top