Yo @bbd666
La ligne ch = "sudo nmcli device wifi connect "+ssid+" password "+password ne fonctionnera sans doute pas. sudo ne lit pas les mots de passe depuis stdin dans ce contexte (sauf cas très spécifiques et configurés avec sudo -S).
Il vaut mieux :
Soit exécuter ton script avec les privilèges root directement (sudo python script.py)
Soit ajouter ton utilisateur au fichier sudoers avec les droits sans mot de passe pour nmcli.
Merci bcp ∇ pour cet exemple tres utile.
je crois que mon script fonctionne (aucune erreur).
je l’ai adapté d’un exemple en changeant d’encodage (utf8 au lieu d’ascii). stackoverflow
je l’ai aussi testé en interactif avec saisie manuelle du mdp:
Tu peux configurer ton utilisateur pour qu’il n’ait pas besoin de saisir son mot de passe sudo pour exécuter nmcli.
Pour ça, faut ajouter une ligne dans le fichier sudoers.
Mais faut le faire avec visudo pour éviter de le corrompre ! (tu peux flinguer ton système)
sudo visudo
(ça va éditer le fichier avec nano ou vi selon ce que tu as configuré)
Et tu ajoutes la ligne suivante pour permettre à ton utilisateur (par exemple, bbd666) d’exécuter nmcli sans mot de passe :
bbd666 ALL=(ALL) NOPASSWD: /usr/bin/nmcli
Après avoir ajouté cette ligne, tu pourras vérifier que tout roule avec sudo visudo -c
Et voilà, tu pourras utiliser sudo nmcli dans ton script sans avoir à saisir un mot de passe.