J'ai créé un script bash qui utilise kdialog exclusivement pour interagir avec l'utilisateur. Il est lancé à partir d'un fichier ".desktop" afin que l'utilisateur ne voie jamais le terminal. Il ressemble à 100% à une application graphique (même s'il ne s'agit que d'un script bash). Il fonctionne uniquement dans KDE (Kubuntu 12.04).
Mon seul problème est de gérer la saisie de mot de passe de manière sécurisée et pratique. Je ne trouve pas de solution satisfaisante.
Le script a été conçu pour être exécuté en tant qu'utilisateur normal et pour demander le mot de passe lorsqu'une commande sudo est nécessaire pour la première fois. De cette façon, la plupart des commandes, celles qui ne nécessitent pas de droits sudo, sont exécutées en tant qu'utilisateur normal. Ce qui se passe (lorsque le script est exécuté à partir du terminal) est que l'utilisateur est invité à entrer son mot de passe une fois et le délai d'expiration sudo par défaut permet au script de se terminer, y compris toutes les commandes sudo supplémentaires, sans inviter à nouveau l'utilisateur. C'est ainsi que je veux que cela fonctionne également lorsqu'il est exécuté derrière l'interface graphique.
Le problème principal est que l'utilisation de kdesudo
pour lancer mon script, qui est la manière standard de l'interface graphique, signifie que le script entier est exécuté par l'utilisateur root. Ainsi, la propriété des fichiers est attribuée à l'utilisateur racine, je ne peux pas compter sur les ~/
chemins d'accès et bien d'autres choses ne sont pas idéales. L'exécution de l'intégralité du script en tant qu'utilisateur root n'est qu'une solution très insatisfaisante et je pense que c'est une mauvaise pratique.
J'apprécie toutes les idées pour permettre à un utilisateur d'entrer le mot de passe sudo une seule fois via l'interface graphique sans exécuter le script entier en tant que root. Merci.