Tengo una aplicación GUI que necesita llamar a un demonio (escrito en Python) con privilegios de superusuario. Me gustaría hacer esto sin pedirle al usuario una contraseña.
Como el demonio es un script, no puedo configurar el bit SUID directamente. Podría escribir un contenedor C para esto, pero preferiría no reinventar la rueda, especialmente cuando un error de mi parte podría hacer que la seguridad del sistema se vea seriamente comprometida.
Lo que normalmente haría en esta situación es agregar una línea /etc/sudoers
que permita a los usuarios ejecutar el daemon como root sin una contraseña, utilizando la directiva NOPASSWD. Esto funciona bien desde la línea de comandos. Sin embargo, cuando hago esto desde la GUI, pkexec
aparece un cuadro de diálogo que solicita la contraseña del usuario. Parece que en Ubuntu, las llamadas sudo
desde la GUI están siendo interceptadas de alguna manera pkexec
.
¿Hay una manera limpia de evitar esto? Realmente prefiero no tener que lidiar con las molestias de un script setuid.
sudo somecommand
, el cuadro de diálogo que aparece es un pkexec
diálogo de contraseña, independientemente de si existe una política de sudoers que permita la ejecución del programa.