He creado un script bash que usa kdialog exclusivamente para interactuar con el usuario. Se inicia desde un archivo ".desktop" para que el usuario nunca vea el terminal. Se ve 100% como una aplicación GUI (aunque es solo un script bash). Se ejecuta solo en KDE (Kubuntu 12.04).
Mi único problema es manejar la entrada de contraseña de forma segura y conveniente. No puedo encontrar una solución satisfactoria.
El script fue diseñado para ejecutarse como un usuario normal y para solicitar la contraseña cuando se necesita un comando sudo por primera vez. De esta manera, la mayoría de los comandos, aquellos que no requieren derechos de sudo, se ejecutan como el usuario normal. Lo que sucede (cuando el script se ejecuta desde el terminal) es que se le solicita al usuario su contraseña una vez y el tiempo de espera de sudo predeterminado permite que finalice el script, incluidos los comandos de sudo adicionales, sin solicitar al usuario nuevamente. Así es como quiero que funcione cuando se ejecuta detrás de la GUI también.
El problema principal es que el uso kdesudo
para iniciar mi script, que es la forma estándar de la GUI, significa que el usuario root ejecuta todo el script. Entonces, la propiedad de los archivos se asigna al usuario raíz, no puedo confiar ~/
en las rutas, y muchas otras cosas son menos que ideales. Ejecutar todo el script como usuario root es solo una solución muy insatisfactoria y creo que es una mala práctica.
Agradezco cualquier idea para permitir que un usuario ingrese la contraseña de sudo solo una vez a través de GUI sin ejecutar todo el script como root. Gracias.