#1 Le 28/02/2017, à 03:15
- josran
[Résolu] Exécuter sudo dans une ligne de script
Bonjour,
Quand j'utilise ce script :
#! /bin/sh
# ce script copie sur mon PC les journaux TV téléchargés par le serveur
# mise en route du serveur
wakeonlan 00:11:32:55:AD:96
# temporisation
sleep 180
# montage du dossier video
sudo mount /media/tt/NAS_video/ << EOF
mot_de_passe
# récupération des fichiers téléchargés
rsync -a --stats --modify-window=1 /media/tt/NAS_video/ /mnt/Donnees_Deux/'My Ziepod Downloaded'/NBC-Nightly-News-video
# extinction du serveur
ssh root@192.168.1.28 /sbin/poweroff
J'ai également essayé cette commande :
# sudo mount /media/tt/NAS_video/ <<< mot_de_passe
Dans les deux, cela affiche ce message d'erreur :
└─ $ ▶ dl-News-from-NAS.sh
Sending magic packet to 255.255.255.255:9 with 00:11:32:55:AD:96
/usr/local/bin/dl-News-from-NAS.sh: 8: /usr/local/bin/dl-News-from-NAS.sh: Syntax error: redirection unexpected
Une suggestion ?
Dernière modification par josran (Le 28/02/2017, à 17:43)
Hors ligne
#2 Le 28/02/2017, à 04:52
- Watael
Re : [Résolu] Exécuter sudo dans une ligne de script
salut,
tss, tss, tss ! on ne met pas un mot de passe, encore moins un mot de passe en clair, dans un script.
je ne comprends pas que sudo accepte de lire un mot de passe sans que l'utilisateur soit "physiquement" présent.
tu dois pouvoir déclarer ton utilisateur pour l'utilisation de cette seule commande sans mot de passe.
le here-string (<mot)attend une chaîne équivalente à celle qui l'a ouverte (le EOF, ici) pour le fermer.
le here-doc (<<<) est une spécificité bash. toi, tu appelles /bin/sh.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 28/02/2017, à 17:42
- josran
Re : [Résolu] Exécuter sudo dans une ligne de script
Cher Watael,
Il me semble qu'un détail t'a échappé : j'ai sollicité de la communauté une suggestion, pas une leçon de morale.
J'ai donc cherché plus avant une solution à mon problème et j'ai fort heureusement pu constater que, sur plusieurs forums, il se trouvait des linuxiens capables d'empathie et de partage face aux questions émanant d'intervenants modérément expérimentés.
Parce que je crois au partage des connaissances sur ce forum, il me semble normal de ne pas garder pour moi la solution que j'ai trouvée et qui pourrait faire gagner du temps à un autre qui chercherait comment glisser une commande de super-utilisateur dans un script, tout en évitant de devoir rester devant son terminal pour entrer le mot de passe.
Au cas particulier, il s'agissait, à l'intérieur du script dl-News-from-NAS.sh, d'exécuter :
sudo mount /media/tt/NAS_video/
Voici la solution détaillée que j'ai utilisée.
Dans un terminal, je frappe :
sudo visudo
En fin du fichier /etc/sudoers qui s’ouvre alors, j’insère cette ligne :
ALL ALL = (root) NOPASSWD: /usr/local/bin/dl-News-from-NAS.sh
Puis je frappe successivement :
<Ctrl-x>
O
<Entrée>
Et il ne me reste plus qu'à lancer le script.
Hors ligne
#4 Le 28/02/2017, à 18:07
- Watael
Re : [Résolu] Exécuter sudo dans une ligne de script
ce n'est pas une leçon de morale, c'est l'énoncé de bonnes pratiques.
tu n'es quand même pas tombé loin de ma suggestion :
tu dois pouvoir déclarer ton utilisateur pour l'utilisation de cette seule commande sans mot de passe.
EDIT: je viens de me rendre compte que j'ai oublié de dire où faire cette déclaration :
... déclarer ton utilisateur >dans /etc/sudoers< ...
Dernière modification par Watael (Le 28/02/2017, à 20:42)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 28/02/2017, à 19:23
- maxire
Re : [Résolu] Exécuter sudo dans une ligne de script
Salut,
Au vu de la commande mount je vois que /media/tt/NAS_video/ est déclaré dans /etc/fstab sans doute avec l'option noauto.
Il aurait suffi d'ajouter l'option user pour te passer de sudo en autorisant ainsi n'importe quel utilisateur à monter ce répertoire.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#6 Le 28/02/2017, à 20:39
- Hizoka
Re : [Résolu] Exécuter sudo dans une ligne de script
josran => Il est important qu'on signale les prises de risque... et qu'on te propose des choses...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne