274

curl https://some-url/ | sh

I see this all over the place nowadays, even in communities that, I would think, should be security conscious. How is that safe? What's stopping the downloaded script from wiping my home directory? If you use this, how can you feel comfortable?

I understand that we have the same problems with the installed application, even if it was downloaded and installed manually. But I feel the bar for making a mistake in a shell script is much lower than in whatever language the main application is written. Don't we have something better than "sh" for this? Something with less power to do harm?

(page 3) 43 comments
sorted by: hot top controversial new old
[-] nous@programming.dev 4 points 6 days ago

Most packages managers can run arbitrary code on install or upgrade or removal. You are trusting the code you choose to run on your system no matter where you get it from. Remember the old bug in ubuntu that ran a rm -rf / usr/.. instead of rm -rf /usr/... and wiped a load of peoples systems?

Flatpacks, Apparmor and snaps are better in this reguard as they are somewhat more sandboxed and can restrict what the applications have access to.

But really if the install script is from the authors of the package then it should be just as trustworthy as the package. But generally I download and read the install scripts as there is no standard they are following and I don't want them touching random system files in ways I am not aware of or cannot undo easily. Sometimes they are just detecting the OS and picking relevant packages to install - maybe with some thrid party repos. Other times they mess with your home partition and do a bunch of stuff including messing with bashrc files to add things to your PATH which I don't like. I would never run a install script that is not from the author of the application though and be very wary of install scripts from a smaller package with fewer users.

[-] jagged_circle@feddit.nl 1 points 5 days ago

No serious distro package manager doesn't require cryptographic signatures in 2025.

Software deep managers are all rubbish except for maven

[-] possiblylinux127@lemmy.zip 3 points 6 days ago

Just use a VM or container for installing software. It can go horribly wrong in a isolated place.

[-] knexcar@lemmy.world 2 points 5 days ago

What does curl even do? Unstraighten? Seems like any other command I’d blindly paste from an internet thread into a terminal window to try to get something on Linux to work.

load more comments (7 replies)
[-] Scoopta@programming.dev 2 points 6 days ago

I also feel incredibly uncomfortable with this. Ultimately it comes down to if you trust the application or not. If you do then this isn't really a problem as regardless they're getting code execution on your machine. If you don't, well then don't install the application. In general I don't like installing applications that aren't from my distro's official repositories but mostly because I like knowing at least they trust it and think it's safe, as opposed to any software that isn't which is more of an unknown.

Also it's unlikely for the script to be malicious if the application is not. Further, I'm not sure a manual install really protects anyone from anything. Inexperienced users will go through great lengths and jump through some impressive hoops to try and make something work, to their own detriment sometimes. My favorite example of this is the LTT Linux challenge. apt did EVERYTHING it could think to do to alert that the steam package was broken and he probably didn't want to install it, and instead of reading the error he just blindly typed out the confirmation statement. Nothing will save a user from ruining their system if they're bound and determined to do something.

[-] FizzyOrange@programming.dev 2 points 6 days ago

I understand that we have the same problems with the installed application, even if it was downloaded and installed manually. But I feel the bar for making a mistake in a shell script is much lower than in whatever language the main application is written.

So you are concerned with security, but you understand that there aren't actually any security concerns... and actually you're worried about coding mistakes in shitty Bash?

[-] possiblylinux127@lemmy.zip 1 points 5 days ago

cd /some/dir && rm -rf *

I've seen this in a script before

[-] FizzyOrange@programming.dev 1 points 5 days ago

So what? I've seen that in every language.

[-] communism@lemmy.ml 2 points 6 days ago

Just direct it into a file, read the script, and run it if you're happy. It's just a shorthand that doesn't require saving the script that will only be used once.

[-] jagged_circle@feddit.nl 1 points 5 days ago

So basically the install instructions for Lemmy? No Lemmy data is safe.

[-] gigachad@sh.itjust.works 1 points 6 days ago

Absolutely. Wanted to try out the famous Python management tool UV last week, installation instruction is like this:

curl -LsSf https://astral.sh/uv/install.sh | sh

Yeah, no thank you.

[-] possiblylinux127@lemmy.zip 1 points 5 days ago* (last edited 5 days ago)

Is available via pip? You could use venv

[-] ulterno@programming.dev 0 points 5 days ago

I don't cringe. Just instinctively Ctrl+W

load more comments
view more: ‹ prev next ›
this post was submitted on 13 Mar 2025
274 points (100.0% liked)

Linux

6540 readers
460 users here now

A community for everything relating to the GNU/Linux operating system

Also check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS