Tengo una aplicación UI (utiliza GTK) para Linux que requiere ejecutarse como root (lee y escribe/dev/sd *).Autenticación de la aplicación GTK para ejecutar con permisos raíz
En lugar de requerir que el usuario abra un shell raíz o use "sudo" manualmente cada vez que inicia mi aplicación, me pregunto si la aplicación puede usar alguna API proporcionada por el sistema operativo para obtener permisos de raíz. (Nota: la aplicación gtk no puede usar el modo "setuid", así que no es una opción aquí.)
La ventaja aquí sería un flujo de trabajo más sencillo: el usuario podría, desde su cuenta de usuario predeterminada, hacer doble clic en mi aplicación desde el escritorio en lugar de tener que abrir un terminal raíz y ejecutarlo desde allí.
Lo pregunto porque OS X ofrece exactamente esto: una aplicación puede solicitar al sistema operativo que ejecute un ejecutable con permisos de raíz: el sistema operativo (y no la aplicación) le pide al usuario que ingrese sus credenciales, las verifique y luego las inicia el objetivo según lo deseado.
Me pregunto si hay algo similar para Linux (Ubuntu, por ejemplo)
Aclaración:
Así que, después de la alusión a PolicyKit Me pregunto si puedo usar eso para conseguir r/w acceso a los dispositivos de bloques "/ dev/sd ...". Encuentro que la documentación es bastante difícil de entender, así que pensé primero preguntar si esto es posible antes de pasar horas tratando de entenderlo en vano.
Actualización:
La aplicación es una herramienta de reparación de disco operada a distancia para el usuario de Linux unsavvy, y esos noobs Linux no tendrá mucho entendimiento del uso de sudo o incluso cambiar la pertenencia a grupos de sus usuarios, especialmente si su disco simplemente comenzó a actuar y se están volviendo locos. Es por eso que busco una solución que evite tecnicismos como este.
Definitivamente es posible configurar cosas así; por ejemplo, el administrador de paquetes Synaptic generalmente se configura de esa manera. – caf
No estoy seguro de que realmente desee ejecutar como root. Si solo necesita acceso al disco, es mejor agregar el usuario al grupo "disco". –
Milán: mi aplicación actúa como una herramienta de reparación de discos de una sola vez. No creo que nadie que quiera usarlo esté dispuesto a cambiar su configuración de todo el sistema para esto, casi permanentemente. –