Pages : 1
#1 Le 10/02/2020, à 10:41
- FanchRLN
Scripts avec commande sudo
Bonjour à tous,
j'imagine que le sujet a dû déjà être traité mais je n'ai rien trouvé de pertinent sur le forum ou google. ( j'ai peut-être mal lu/vu).
Je vos contacts pour un script que j'aimerais bien faire fonctionner sans password.
le but du script c'est pour envoyer les donnes GPS de mon portable vers GPSD pour un logiciel de navigation
je suis sur Ubuntu 18.04.4 LTS.
le script :
#!/bin/bash
sudo rfcomm bind 0 MAC-ADRESSE 2
sleep 5
cat /dev/rfcomm0
sleep 10
sudo service gpsd stop
sleep 30
sudo service gpsd start
Sleep 10
xgps
j'ai fait un "chmod +x" pour le rendre exécutable.
quand je lance par nautilus il ne se passe rien.
quand je lance par un terminal, il me demande mon Password
j'ai tenté de désactiver les mots passe en modifiant mon fichier sudoers (juste pour test) la plupart des commandes fonctionnent sans password mais pas toute :
exemple: sudo rfcomm bind 0 MAC-ADRESSE 2
Avez-vous des conseils à me donner?
merci pour votre aide!
Hors ligne
#2 Le 10/02/2020, à 13:22
- LukePerp
Re : Scripts avec commande sudo
Bonjour,
Tu dois retirer les sudo de ton script et exécuter ton script avec sudo. C'est ton script que tu dois mettre dans sudoers pour l'exécuter avec sudo sans taper le mot de passe.
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
Hors ligne
#3 Le 10/02/2020, à 15:48
- FanchRLN
Re : Scripts avec commande sudo
ok,et merci de ton retour,
si je comprends bien,
j'enlèves les sudo de mon Bash
je rajoute une ligne a la fin de mon sudoers :
user ALL = NOPASSWD: Chemin/de/la/commande/bash.sh
je devrais pouvoir le lancer de nautilus ou du terminal sans utiliser sudo ?
Hors ligne
#4 Le 10/02/2020, à 17:10
- Watael
Re : Scripts avec commande sudo
salut,
[hors-sujet]
dans ton script, plutôt que des attentes d'une durée fixe, il serait peut-être préférable de faire une boucle qui teste la mise en oeuvre correcte de la commande précédente, et d'un nombre de tests max (réinitialisé pour chaque commande!) au-delà duquel le script doit s'arrêter complètement.
nbMax=10
nbTests=0
until commandeQuiVérifieLaPrecedente && ((++nbTests <= nbMax))
do
sleep 0.5
done
[/hors-sujet]
Dernière modification par Watael (Le 10/02/2020, à 18:28)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 10/02/2020, à 17:42
- LukePerp
Re : Scripts avec commande sudo
j'enlèves les sudo de mon Bash
je rajoute une ligne a la fin de mon sudoers :
Tu enlèves les sudo dans ton script : oui
Tu modifie sudoers pour retirer les lignes que tu avais mis pour les commandes dedans ton script et tu ajoute une ligne vers le chemin complet de ton script :
TonNom ALL=NOPASSWD: /chemin/complet/ton/script.sh
Mais, attention, il faut absolument utiliser sudo pour démarrer ton script :
sudo /chemin/complet/ton/script.sh
Dernière modification par LukePerp (Le 10/02/2020, à 17:43)
Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Utilisateur de Dapps sur Ethereum
Hors ligne
#6 Le 11/02/2020, à 22:51
- FanchRLN
Re : Scripts avec commande sudo
ok; merci pour vos conseil, je vais tester ça rapidement!
Hors ligne
#7 Le 12/02/2020, à 00:10
- Compte supprimé
Re : Scripts avec commande sudo
salut,
[hors-sujet]
dans ton script, plutôt que des attentes d'une durée fixe, il serait peut-être préférable de faire une boucle qui teste la mise en oeuvre correcte de la commande précédente, et d'un nombre de tests max (réinitialisé pour chaque commande!) au-delà duquel le script doit s'arrêter complètement.nbMax=10 nbTests=0 until commandeQuiVérifieLaPrecedente && ((++nbTests <= nbMax)) do sleep 0.5 done
[/hors-sujet]
merci j'ai encore appris un truc . J'apprécie.