Nous sommes le Dim 20 Juil, 2025 08:22
Supprimer les cookies

mot de passe dans script

Sur le logiciel libre en général ou un logiciel libre en particulier

Mer 25 Juil, 2007 12:46

Bonjour à tous

j'ai un script qui me permet de récupérer puis d'installer une version svn dans un dossier /opt

Problème: il faut faire le make install en root.

Dans mon script, j'ai:

Code: Tout sélectionner
sudo make install


ce qui lance une invite à mettre le password. Mais comme c'est assez long, souvent je lance ça le soir ou avant de partir et du coup le terminal finit par se bloquer en attente de mon password.

Ma question: comment mettre dans le script le password de façon à ce que le make install se lance sans que j'aie besoin d'être là?

Merci de votre aide.
bengale2005

Messages : 339
Géo : www.le-tigre.net

Mer 25 Juil, 2007 13:48

Bonjour

Comme ceci peut-être:
Code: Tout sélectionner
echo mot_de_passe | sudo -S make install
Amicalement,

Laurent
obor2

Messages : 524
Géo : belgique

Mer 25 Juil, 2007 14:03

Merci, je vais essayer. J'imagine que le signe «|» a un sens.

Je dois donc mettre:

Code: Tout sélectionner
[...] && make && echo mot_de_passe | sudo -S make install


:?:
bengale2005

Messages : 339
Géo : www.le-tigre.net

Mer 25 Juil, 2007 14:19

Oui, c'est aussi nécessaire que l'option -S.

Synthétiquement, "echo mot_de_passe" affiche en temps normal "mot_de_passe" sur le terminal. Le pipe (|) détourne la sortie du terminal et la renvoie sur l'entrée standard qui est ensuite récupérée par "sudo" en tant que mot de passe quand on spécifie l'option "-S".

Ce sont des concepts basiques dans le monde ligne de commande tels que "pipe" ( | ), entrée standard (stdin), sortie standard (stdout), redirection des entrées sorties ( < > >> << ), exécution en arrière plan ( & en fin de commande ), etc. etc. C'est parfois bon à savoir. Je t'encourage à chercher un peu d'information sur ça ;)

Dernier point, plus de niveau sécuritaire. Avec cette méthode, ton mot de passe apparaîtt en clair dans le fichier... Donc, ceux qui ont les droits d'accéder à ce script en lecture peuvent le consulter allégrement. Mets des droits en bétons... ;)
Amicalement,

Laurent
obor2

Messages : 524
Géo : belgique

Mer 25 Juil, 2007 15:31

Pas moyen d'utiliser fakeroot pour faire un paquet et ensuite installer ce paquet avec un vrai script root via cron (je n'aime pas de toute façon ces installations automatiques car on est pas sûr du contenu, ni que le programme fonctionne) ?

Et checkinstall ?
Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Mer 25 Juil, 2007 17:12

Téthis a écrit:Pas moyen d'utiliser fakeroot pour faire un paquet et ensuite installer ce paquet avec un vrai script root via cron (je n'aime pas de toute façon ces installations automatiques car on est pas sûr du contenu, ni que le programme fonctionne) ?

Et checkinstall ?


Euh, là je crains que ça ne dépasse mes compétences...

Pour la question du mot de passe, pas de souci puisque je suis le seul à utiliser cet ordinateur (et que le script est juste un appel de commandes dans un terminal depuis mon bureau) - mais pour plus de sécurité je change les droits d'accès.

Il s'agit de la version svn de Scribus (1.3.5, cf. http://docs.scribus.net/index.php?lang=fr&page=install1), que je récupère très régulièrement pour en suivre l'évolution (correction de bugs, etc.) donc pas de souci ni de contenu ni de fonctionnement (ce n'est pas la version que j'utilise pour le journal).
bengale2005

Messages : 339
Géo : www.le-tigre.net

Mer 25 Juil, 2007 17:44

checkinstall permet de simuler une installation tout en faisant un paquet pour la distribution, avec donc possibilité de gérer le programme avec les outils de gestion de paquets de la distribution. Il fait des paquets slackware, debian et peut-être rpm.

Pour résumer :
svn ...
./autogen.sh (ou autre si besoin)
make
sudo checkinstall --arguments truc machin

et on a un beau paquet prêt à être installé.
Attentyon, ponaytte maychante !
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Jeu 26 Juil, 2007 06:12

Ça paraît simpliste (et en plus je n'ai pas essayé) mais ne pourrais-tu donner à sudo pour cet utilisateur le droit d'exécuter make sans mot de passe ? Avec une ligne du genre
Code: Tout sélectionner
nom_d_utilisateur    ALL=(ALL) NOPASSWD: /usr/bin/make
?
C'est un trou de sécurité mais c'est peut-être moins pire que le mot de passe root en clair dans un script. Enfin ça dépend du point de vue. Le petit avantage c'est que tu ne changes absolument rien à ton script initial.
Phil (la personne et le masque).
"Non, que jamais ces mots insupportables ne sortent de notre bouche : "moi, la vérité, je parle"."
* Dedicated to software which sucks less ... http://suckless.org/
philh

Messages : 624
Géo : Oh, pas ici.

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit