Disclaimer. I'm a long-time Windows user and just starting to get my head around the Linux paradigm. While excited by it, I understand that my formulations might be poorly chosen due to ignorance.
I've received an answer, the contents of which included the following line, which I need help interpreting (after a while of googling I've got a pretty good guess but I'd like to make it more reliable).
curl -sL https://blabla | sudo -E bash -
I understand that we first create a web call to the URL blabla and then (here's the pipe magic popping up) execute a command with admin elevated privileges to open a new terminal window instance.
However, when I try to digest the command, I learn that it's equivalent to the following sequence.
curl --silent --location https://blabla
sudo -E bash -
Question 1: Is that correctly understood?
Further on, I tried to learn what the switches for the second line are and used the statement as follows.
man bash | sed -n '/-E/,+1p'
However, I can't really see what "-E" is shorthand for (is it --empty or is it -- or maybe --err) and get stuck on the interpretation. Also, I can't figure out what the alone dash character does and I'm not sure how to look it up in the manual using the statement above.
Question 2: How do I look up the verbose syntax for the switches?
Question 3: What is the meaning of the dash character without the switch?
curl
or any tool which downloads data from web with a shell is very poor practice for security reasons. The downloaded script is passed as raw data tobash
stdin, and thus doesn't live on disk, so you have no way of knowing what you may have executed. In fact, this is how exploits are downloaded onto servers. Unlike PowerShell, Unix shells have no execution policy. Best practice is to download script first, examine its contents, maybe compare hashsum, and only if you're sure it's safe - run it. – Sergiy Kolodyazhnyy Sep 10 '18 at 20:19