tubería a sudo -E bash -

10

Me preguntaba cuál es el propósito de la tubería el archivo descargado por curldentro sudo -E bash -de la cáscara de siguiente:

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

Mr.Y
fuente

Respuestas:

10

Es una forma corta de ejecutar un script sin tener que guardar el archivo y luego ejecutarlo. Cuando guarda el archivo y luego lo ejecuta, una serie de cosas pueden salir mal:

  • El usuario no escribió el nombre de archivo correctamente
  • El usuario no usó el shell correcto (quizás se ejecutó en sh foo.shlugar de bash foo.sh)
  • El usuario intentó ejecutar el archivo en lugar de configurar bash en él ( ./foo.sh), y olvidó establecer permisos de ejecución
  • El usuario olvidó usar sudo

Al proporcionar una sola línea de comando para ejecutar, los desarrolladores pueden disminuir el número de lugares donde las cosas pueden salir mal debido a un error del usuario.

Personalmente, desprecio los rizos de ribete a golpes. No es seguro.

muru
fuente
7

Este comando descargaría el archivo e intentaría ejecutarlo con privilegios de root.

Barafu Albino
fuente
3
Gracias, pero ¿cuál es la elección de la -Eopción y -al final del comando?
Mr.Y
55
@Youssef -Econserva las variables de entorno (digamos variables para la configuración del proxy) y -le dice a bash que lea los comandos de la entrada estándar, es decir, la tubería.
Muru