Pages : 1
#1 Le 10/05/2015, à 12:26
- GP974
python et droit root
Bonjour
Je développe une application qui normalement n'a pas besoins des droits root sauf pour une action ou j'ai besoin de rajouter un paramètre dans un fichier uniquement accessible en écriture à root.
Donc j'aimerais vraiment éviter de devoir lancer toute mon appli en root uniquement pour une fonction.
Ma question est la suivante :
Il y a un moyen "standard" d'afficher une fenêtre qui demande le mdp sudo ou root, de vérifier que celui ci est bon est ensuite de donner temporairement les droit root pour écrire dans le fichier puis de revenir en "normal user" ?
Pour l'instant ma solution serait de coder à la main une fenêtre qui demande le pass et de lancer en utilisant avec sudo (ou su) via os.system() ma fonction qui se trouverais seule dans un fichier .py séparé
Mais bon je ne trouve pas ça trés propre donc je préfère avoir l'avis des experts.
Merci
Hors ligne
#2 Le 11/05/2015, à 08:25
- Laërte
Re : python et droit root
Tu peux effectivement lancer juste un fichier avec les droits root, en l'éxécutant via le module subprocess avec kdesudo ou gksudo. Par exemple :
code_de_retour = subprocess.call(["kdesudo", "./ma_fonction.py"])
Si code_de_retour est différent de 0, la commande n'a pas réussi à s'éxécuter, essaie de nouveau avec gksudo alors.
La doc python recommande d'utiliser subprocess plutôt que os.system
Mais je doute effectivement que ce soit très propre, et je suis loin d'être un expert.... ^^
Hors ligne
#3 Le 12/05/2015, à 07:34
Hors ligne
#4 Le 13/05/2015, à 20:23
- tiramiseb
Re : python et droit root
Salut,
En général, quand on est dans ce genre de cas c'est pour des daemons.
Et ce qu'on fait dans ces cas, c'est lancer le programme en root, lui-même va alors faire un fork, pour ne lancer qu'un petit bout en tant que root, et pour le reste il va changer d'utilisateur pour perdre ses privilèges.
Mais si c'est un programme que tu lances "à la demande" et que tu voudrais lancer à partir d'un compte utilisateur, c'est plus problématique...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 14/05/2015, à 06:33
- GP974
Re : python et droit root
@tiramiseb
Effectivement c'est un programme utilisateur qu'on ne lance que trés ponctuellement
Donc actuellement j'ai fais la solution du dessus j'ai mis ma fonction dans un fichier séparé et je détecte le DE et je lance soit gksudo soit kdesudo
subprocess.call(["DESUDO", "./ma_fonction.py"])
J'ai pas mieux comme solution c'est pas trés propre mais bon
Hors ligne
#6 Le 14/05/2015, à 08:41
- tiramiseb
Re : python et droit root
Je ne vois en effet pas d'autre moyen.
Je ne trouve même pas de lib permettant d'intégrer la demande de mot de passe directement dans le code Python...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
Pages : 1