[Résolu]sudo et python

fred1599
[Résolu]sudo et python

Bonsoir,

j'aimerais faire un script python, mais pour cela j'ai besoin de la commande bash "sudo".

J'aimerais executer une commande du type :

sudo commande -password

Bien sur tout est connu, tant l'user que le password, c'est simplement pour éviter de taper le mot de passe dans l'interpréteur.

Merci par avance pour votre aide

:D

fredericmazue

Ubuntu ? ;) :)

Je comprends pas trop la question. tu veux plutôt dire taper

sudo commande

et que ça s'exécute SANS devoir taper le mot de passe de root ?

Si c'est ça que tu veux, ça se fait en modifiant le contenu du fichier /etc/sudoers prévu à cet effet.

Par exemple si tu as dedans

fred1599 ALL = (root) NOPASSWD: /sbin/fdisk -l, /sbin/shutdown -h now, le_script_python

alors tu peux rebooter ou lister tes partitions et même exécuter le_script_python sans être root et sans donner le mot de passe.

Attention ne pas éditer /etc/sudoers manuellement, mais avec je crois visudo. je dis je crois parce que j'utilise jamais sudo, beaucoup trop dangereux selon moi.
Ici le danger c'est que si tu as du code malicieux (ou si un autre sudoer a les droits pour en injecter ;) ) dans le script Python exécuté avec les droit de root, ça peut aller loin... :)

fred1599

Quote:
Ubuntu ?

En effet :D

Quote:
sudo commande

Pas tout a fait mais

sudo commande mot_de_passe

Quote:
Si c'est ça que tu veux, ça se fait en modifiant le contenu du fichier /etc/sudoers prévu à cet effet.

Non non je connais cette technique et je ne veux pas l'utiliser pour cette raison
|
|
v

Quote:
Attention ne pas éditer /etc/sudoers manuellement, mais avec je crois visudo. je dis je crois parce que j'utilise jamais sudo, beaucoup trop dangereux selon moi.
Ici le danger c'est que si tu as du code malicieux (ou si un autre sudoer a les droits pour en injecter Wink ) dans le script Python exécuté avec les droit de root, ça peut aller loin...

dont je connais tres bien les risques et que je ne veux pas tenter :wink:

Merci de ton aide

fredericmazue

De mémoire je dirais qu'on ne peut pas faire

sudo commande password

Tu fais sudo command et le mot de passe t'es demandé à ce moment. Et c'est ça que tu veux contourner si je comprends bien.

Il me semble que sudo peut lire le mot de passe depuis stdin si on donne l'option -S (S majuscule)

essaie:

echo le_mot_de_passe | sudo -S commande

et dis nous si ça marche :)

fred1599

Quote:
Il me semble que sudo peut lire le mot de passe depuis stdin si on donne l'option -S (S majuscule)

Je l'avais lu dans le man mais je ne savais pas l'utiliser, tu es un génie :D

Quote:
echo le_mot_de_passe | sudo -S commande

Ca marche du feu de dieu, je te remercie énormément

:wink: