Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/05/2015, à 13: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


Ubunteros depuis 10.04 Restez libre avec Linux :)
Fixe : i7 i930@3.2ghz | DDR3 12go | Amd Rx580 | SSD - 120Go S2 | 14.04.05 & Arch
Fixe2 : I5 6500U@2.8ghz | DDR4 8GO | SSD 120 M2 | Arch
Développeur de nvidiux

Hors ligne

#2 Le 11/05/2015, à 09: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, à 08:34

GP974

Re : python et droit root

ok merci

A priori par de façon officielle de faire ça erf....


Ubunteros depuis 10.04 Restez libre avec Linux :)
Fixe : i7 i930@3.2ghz | DDR3 12go | Amd Rx580 | SSD - 120Go S2 | 14.04.05 & Arch
Fixe2 : I5 6500U@2.8ghz | DDR4 8GO | SSD 120 M2 | Arch
Développeur de nvidiux

Hors ligne

#4 Le 13/05/2015, à 21: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...

Hors ligne

#5 Le 14/05/2015, à 07: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


Ubunteros depuis 10.04 Restez libre avec Linux :)
Fixe : i7 i930@3.2ghz | DDR3 12go | Amd Rx580 | SSD - 120Go S2 | 14.04.05 & Arch
Fixe2 : I5 6500U@2.8ghz | DDR4 8GO | SSD 120 M2 | Arch
Développeur de nvidiux

Hors ligne

#6 Le 14/05/2015, à 09: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... hmm

Hors ligne