pipe vers sudo -E bash -


10

Je me demandais quel est le but de canaliser le fichier téléchargé curldans sudo -E bash -dans le shell suivant:

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

Réponses:


10

C'est un moyen court d'exécuter un script sans avoir à enregistrer le fichier puis à l'exécuter. Lorsque vous enregistrez le fichier, puis l'exécutez, un certain nombre de choses peuvent mal se passer:

  • L'utilisateur n'a pas correctement saisi le nom de fichier
  • L'utilisateur n'a pas utilisé le bon shell (peut-être exécuté à la sh foo.shplace de bash foo.sh)
  • L'utilisateur a tenté d'exécuter le fichier au lieu de définir bash dessus ( ./foo.sh), et a oublié de définir les autorisations d'exécution
  • L'utilisateur a oublié d'utiliser sudo

En fournissant une seule ligne de commande à exécuter, les développeurs peuvent réduire le nombre d'endroits où les choses peuvent mal tourner en raison d'une erreur de l'utilisateur.

Personnellement, je méprise la tuyauterie curl to bash. Ce n'est pas prudent.


7

Cette commande téléchargerait le fichier et tenterait de l'exécuter avec les privilèges root.


3
Merci, mais à quoi sert l' -Eoption et -à la fin du commandement?
Mr.Y

5
@Youssef -Epréserve les variables d'environnement (disons les variables pour les paramètres proxy) et -demande à bash de lire les commandes depuis l'entrée standard, c'est-à-dire le canal.
muru
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.