1066
The real magic word (sh.itjust.works)
top 44 comments
sorted by: hot top controversial new old
[-] Underlectual@lemmy.world 72 points 3 months ago
[-] synapse1278@lemmy.world 27 points 3 months ago
[-] Zacryon@lemmy.wtf 7 points 3 months ago

I don't know enough about IT security to understand this.

Does that mean that run0 puts programs in some form of sandbox? What's the difference now to sudo?

[-] Blisterexe@lemmy.zip 7 points 3 months ago

Basically the way sudo and doas work is that they turn your current session into a privileged one, then run the command, then put your session back the way it was, this can cause security issues. The way run0 works is that it just asks systemd to do it for you, removing those security risks.

At least thats the way I understand it, im not an expert

[-] Salix@sh.itjust.works 4 points 3 months ago* (last edited 3 months ago)

Someone did a ELI3 explanation for this a couple days ago. The ELI5 explanation was more complicated so someone asked for ELI3 lol

ELI3

Pouring a cup of juice is something an adult needs to be involved with.

sudo is when you ask for permission to pour your own cup of juice. You ask an adult, they give you the cup and the juice, and then you’re responsible for pouring it. If the adult isn’t paying attention they may leave the fridge open for you to go back for more juice or another beverage, but otherwise you’re limited to the amount of juice the adult has given you.

run0 is when the adult just gets you a cup of juice. You tell them what you want, they go and pour the juice, and just give you the cup with the juice in it. You never enter the kitchen, so you don’t have access to the fridge, just your cup of juice.

ELI5

Basically, the SUID bit makes a program get the permissions of the owner when executed. If you set /bin/bash as SUID, suddenly every bash shell would be a root shell, kind of. Processes on Linux have a real user ID, an effective user ID, and also a saved user ID that can be used to temporarily drop privileges and gain them back again later.

So tools like sudo and doas use this mechanism to temporarily become root, then run checks to make sure you’re allowed to use sudo, then run your command. But that process is still in your user’s session and process group, and you’re still its real user ID. If anything goes wrong between sudo being root and checking permissions, that can lead to a root shell when you weren’t supposed to, and you have a root exploit. Sudo is entirely responsible for cleaning the environment before launching the child process so that it’s safe.

Run0/systemd-run acts more like an API client. The client, running as your user, asks systemd to create a process and give you its inputs and outputs, which then creates it on your behalf on a clean process tree completely separate from your user session’s process tree and group. The client never ever gets permissions, never has to check for the permissions, it’s systemd that does over D-Bus through PolKit which are both isolated and unprivileged services. So there’s no dangerous code running anywhere to exploit to gain privileges. And it makes run0 very non-special and boring in the process, it really does practically nothing. Want to make your own in Python? You can, safely and quite easily. Any app can easily integrate sudo functionnality fairly safely, and it’ll even trigger the DE’s elevated permission prompt, which is a separate process so you can grant sudo access to an app without it being able to know about your password.

Run0 takes care of interpreting what you want to do, D-Bus passes the message around, PolKit adds its stamp of approval to it, systemd takes care of spawning of the process and only the spawning of the process. Every bit does its job in isolation from the others so it’s hard to exploit.

[-] homura1650@lemm.ee 3 points 3 months ago

Sudo is a setuid binary, which means it executes with root permissions as a child of of the calling process. This technically works, but gives the untrusted process a lot of ways to mess with sudo and potentially exploit it for unauthorized access.

Run0 works by having a system service always running in the background as root. Running a command just sends a message to the already running seevice. This leaves a lot less room for exploits.

[-] synapse1278@lemmy.world 2 points 3 months ago

Sorry, but it's also beyond my understanding. As far as I can understand, run0 doesn't use a sandbox, but will better isolate the privileged processes from unprivileged ones when executing a command.

[-] dan@upvote.au 3 points 3 months ago

setuid binaries are scary, so I could see myself getting behind this.

[-] Kusimulkku@lemm.ee 12 points 3 months ago

I was thinking exactly this

[-] 0x4E4F@sh.itjust.works 4 points 3 months ago

Systemd specific, doesn't run in any distro, thus, I probably won't use it.

[-] FrankTheHealer@lemmy.world 8 points 3 months ago

Tbh, I don't think I can change the muscle memory. Even if run0 is forced on users as the new sudo, I'll just use an alias or some shit.

[-] avidamoeba@lemmy.ca 49 points 3 months ago* (last edited 3 months ago)

Linux kids do not accept cookies.

[-] Murdoc@sh.itjust.works 5 points 3 months ago

Not from strangers anyway.

[-] pleb_maximus@feddit.de 49 points 3 months ago

Kid is not in sudoers file. This incident will be reported.

[-] jaybone@lemmy.world 14 points 3 months ago

Did we ever figure out who it gets reported to?

[-] Kerb@discuss.tchncs.de 25 points 3 months ago
[-] AppleMango@lemmy.world 6 points 3 months ago

Damn... XKCD for this too?

[-] kamen@lemmy.world 3 points 3 months ago

If you're not aware yet, there's an xkcd for everything.

[-] rickyrigatoni@lemm.ee 25 points 3 months ago
[-] kamen@lemmy.world 1 points 3 months ago

Why does it rhyme with "shoot yourself in the foot"?

[-] itslilith@lemmy.blahaj.zone 0 points 3 months ago

It definitely doesn't rhyme

[-] Titou@sh.itjust.works 23 points 3 months ago
[-] possiblylinux127@lemmy.zip 3 points 3 months ago

Not as robust as far as I can tell. It doesn't seem to allow for the level of control and logging that sudo does

[-] Titou@sh.itjust.works 4 points 3 months ago

It's made for peoples who only has 1 user account on their machine, like 80% of Linux users

[-] possiblylinux127@lemmy.zip 2 points 3 months ago

I think most of Linux users are server admins

[-] Titou@sh.itjust.works 2 points 3 months ago

Well it's not true, most of them use it as a daily os

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

Source? Most of the internet is powered by Linux

[-] Titou@sh.itjust.works 3 points 3 months ago

Not every sysadmin use Linux as a daily driver, otherwise there wouldn't be 4% of Linux users and 96% of linux server

[-] possiblylinux127@lemmy.zip -2 points 3 months ago

That's what I'm saying. Most of Linux is servers.

[-] Titou@sh.itjust.works 1 points 3 months ago

No that's not you said. Linux users and servers hosting Linux systems are different things.

[-] possiblylinux127@lemmy.zip 1 points 3 months ago

Those servers are used by Linux users technically

[-] Titou@sh.itjust.works 2 points 3 months ago

Yep, but what i mean is that on servers sudo is the best choice because there's generally differents permissions to manage for differents users account, but on personal machine doas is better if you only have one user account

[-] Neon@lemmy.world 15 points 3 months ago
[-] abrahambelch@programming.dev 14 points 3 months ago

PowerShell: right clicks and selects run as administrator, loses previous session

[-] 0x4E4F@sh.itjust.works 1 points 3 months ago* (last edited 3 months ago)

Why? Because GUI shell = session...

[-] Buelldozer@lemmy.today 1 points 3 months ago

Today you can use an inline "RunAs" command such as "runas /user:Administrator "powershell.exe -executionpolicy bypass -command Set-Location "$PWD"; .\install.ps1"

Or you could use Gsudo.

Additionally, Sudo will soon be available in Win11.

[-] avidamoeba@lemmy.ca 4 points 3 months ago

That's cultural appropriation.

[-] AdrianTheFrog@lemmy.world 12 points 3 months ago
[-] possiblylinux127@lemmy.zip 7 points 3 months ago
[-] LeroyJenkins@lemmy.world 2 points 3 months ago

sudo git out of my head

[-] TimeSquirrel@kbin.social 5 points 3 months ago* (last edited 3 months ago)

This comic strip always weirded me out. It's like the Veggie Tales of comic strips.

[-] Matriks404@lemmy.world 2 points 3 months ago

sudo is a bloat su - for life.

this post was submitted on 10 May 2024
1066 points (98.4% liked)

linuxmemes

20351 readers
934 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS