• Dracocide@lemm.ee
      link
      fedilink
      Akan
      arrow-up
      0
      ·
      6 months ago

      I never understood the hate, tbh. A lot of users don’t even care if Sysd is used, as long as it works. So… Since the majority of distros use it… I think it works enough.

      • steeznson@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        I think some of the hate is from the main systemd dev, Poettering, being so abrasive on social media. He’s got a hateboner for certain distros (which don’t ship with systemd as the default).

      • Grangle1@lemm.ee
        link
        fedilink
        arrow-up
        0
        ·
        6 months ago

        It seems to me to be mainly from people who are dedicated to the Unix philosophy that programs should do only one thing, and do it well. Tying everything up into systemd doesn’t follow that. I don’t care either, and I don’t mind systemd, but some people care about it enough to throw paragraphs of hate on it wherever it’s mentioned online. And apparently it’s “bloat”, and to some " bloat" is worse than the devil himself.

        • Max-P@lemmy.max-p.me
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          6 months ago

          If you dig deeper into systemd, it’s not all that far off the Unix philosophy either. Some people seem to think the entirety of systemd runs as PID1, but it really only spawns and tracks processes. Most systemd components are separate processes that focus on their own thing, like journald and log management. It’s kinda nice that they all work very similarly, it makes for a nice clean integrated experience.

          Because it all lives in one repo doesn’t mean it makes one big fat binary that runs as PID1 and does everything.

          • optissima@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            6 months ago

            This is what turned me around: investigating and realizing that it is following the unix philosophy, it’s just under the hood (under the other hood inside the bigger under the hood).

  • Adanisi@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    6 months ago

    Fuck off Poettering. Stop trying to absorb the whole system.

    EDIT: apparently systemd absorbing the whole system with it’s nonstandard, monolithic nightmare is a good thing, judging from downvotes. Carry on.

    • TechNom (nobody)@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      The vast majority of Linux users consider systemd as a good thing because it apparently makes system administration easier. They also don’t agree that systemd is monolithic, because it’s actually designed modular.

      But of course there are detractors. The only thing I like about systemd is its declarative service definition and parallel service startup. But if I wanted to run an OS with bloated and inscrutable software (even with the source code), my choice wouldn’t be Linux or Systemd.

      I also routinely switch parts of my OS. This is harder with systemd. Although it is modular, the modules are so tightly coupled that it will prevent the replacement of modular components with alternatives. Frankly, I think systemd is killing the innovation in system component development.

      • laurelraven@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        Yeah… Not sure how everyone lets them get away with calling it “modular” when it’s next to impossible to swap out the modules

      • Zucca@sopuli.xyz
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        because it’s actually designed modular

        Oh? Try to use systemd without logind or journald. logind isn’t so bad, but journald was bad enough, that I gave up with systemd.

        • TechNom (nobody)@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 months ago

          I use Gentoo with OpenRC. So my position in this matter should be clear. Anyway, check the last paragraph again to see what I think about systemd’s modularity.

          • Zucca@sopuli.xyz
            link
            fedilink
            arrow-up
            2
            ·
            5 months ago

            Yes. I agreed with you. But I made it sound like something else. Bad wording on my side.

            As I’m too Gentoo openrc user. I also use seatd+greetd instead of (e)logind and replacing sysvinit with openrc-init. The availability of choices made me do it!

  • gaael@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    6 months ago

    The article talks about sudo and doas being SUID binaries and having a larger attack surface than run0 would. Could someone ELI5 what this means?

    • Max-P@lemmy.max-p.me
      link
      fedilink
      arrow-up
      2
      ·
      6 months ago

      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.

        • Drusenija@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          6 months ago

          (I’ll attempt this based on my understanding of both)

          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.

  • Eugenia@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 months ago

    I personally don’t have a problem with run0 over sudo, however, I don’t want to have to remember to use a different command on the terminal. Just rename it “sudo”, and do the new stuff with it. Just don’t bother me having to remember new commands.

    • TechNom (nobody)@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      You can uninstall the sudo application and add sudo as an alias for run0 in your shell initialization script. That’s better than them renaming run0 to sudo, because that will prevent people from running the real sudo if they want it.

  • jeremyparker@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    6 months ago

    Me: Oh, I get it, this “Lemmy” website – it’s like The Onion but for nerds?

    My fellow lemmings: No, they’re serious. run0 is real.

    Me: Hah. The Onion, but for nerds! I love it.

    • purplemonkeymad@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Did they think about how far I would have to move my hand to type it? Sudo is only in two easy to reach places on the keyboard, run0 is 4 separate areas of the keyboard, one two rows from home and none on the home row.

      I’m only partially joking.

    • laurelraven@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, SystemD/Linux, or as I’ve recently taken to calling it, SystemD plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning SystemD system made useful by the SystemD corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

      Many computer users run a modified version of the SystemD system every day, without realizing it. Through a peculiar turn of events, the version of SystemD which is widely used today is often called Linux, and many of its users are not aware that it is basically the SystemD system, developed by the SystemD Project.

      There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the SystemD operating system: the whole system is basically SystemD with Linux added, or SystemD/Linux. All the so-called Linux distributions are really distributions of SystemD/Linux!