Estoy escribiendo un programa gui usando el módulo wx en python. En el programa cada vez que accedo a una carpeta que requiere privilegio de root, entonces me pide contraseña en la terminal pero quiero mostrar el diálogo al usuario para ingresar la contraseña y autenticarlo. ¿Cómo llamar a ese diálogo y autenticar al usuario en ubuntu?
13
sudo
, pero no tengo suficiente conocimiento de Python o PolicyKit para escribir una buena respuesta que explique cómo. Quizás alguien más pueda.Respuestas:
Hay dos preguntas y respuestas diferentes en stackoverflow que responden a su pregunta: aquí y aquí .
Ambas respuestas usan el comando
gksudo
(ya mencionado por @khamer). Si ejecutagksudo command
(también sin python) básicamente hará lo quesudo
hace, pero con una interfaz gráfica, es decir, solicite al usuario una contraseña y luego ejecute el comando como root si el usuario está en el archivo sudoers.Para implementar la solución sugerida a partir de las respuestas vinculadas en python, puede usar algo como se muestra en el siguiente ejemplo:
Crea un archivo
run.py
:Y un archivo
create.py
:Luego, ejecute
python run.py
y luego de ingresar su contraseña, se creará un archivo propiedad de root. Si lo ejecutapython create.py
, será de su propiedad (el archivo no debe existir antes de ejecutar el script).fuente
Si bien estoy seguro de que hay una solución python más elegante, la versión sucia y baja es usar gksudo. gksudo hace lo mismo que sudo, excepto que crea ese diálogo para la autenticación que mencionaste en lugar de preguntar en la línea de comando.
Ver https://help.ubuntu.com/community/RootSudo#Graphical_sudo
fuente
gksu
/gksudo
en un programa Python?Inserta este script en tu código:
fuente