It’s actually not a bug, but obvious behavior.

  • AProfessional@lemmy.world
    link
    fedilink
    English
    arrow-up
    52
    ·
    5 months ago

    TL;DR for anybody worried. systemd-tmpfiles --purge was too broad in scope (and has a confusing name) so now you must be more specific when using it to avoid accidentally deleting things.

    • The Doctor@beehaw.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 months ago

      I’ve been saying, Microsoft hired Poettering to thank him for fucking up Linux so much with systemd.

    • taanegl@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      4 months ago

      Thanks Microsoft for spotting that, and thanks to Google and CloudFlare for blocking or redirecting Polifyll.io network traffic.

      Credit where credit is due.

  • T (they/she)@beehaw.org
    link
    fedilink
    arrow-up
    11
    arrow-down
    1
    ·
    5 months ago

    If it was intended but not properly documented as it says, why does it keep being called a bug?

    • Dave.@aussie.zone
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      5 months ago

      The bug is the lack of documentation and that a simple unguarded command can erase all user’s data on the system.

      Also, the principle of least surprise would like a word.

      If I look at the command line arguments of a program called “systemd-tmpfiles” and one of them is called “purge” I will generally assume that option will purge temporary files.

      Now it turns out that someone decided that this program would be a simple way to do something with /home directories(*) so they included /home in the config file for the program, the file that the program reads by default when it is invoked.

      Who decided it would be a good idea for it to deal with /home?

      Wellllll…

      https://github.com/systemd/systemd/blob/main/tmpfiles.d/home.conf

      (*)I have no idea what this program is doing with /home in its config file. I will presume that there is a useful and mostly logical reason for it, and that this command line option was just an unfortunate footgun for those users who were not intimately familiar with systemd.

      • NekkoDroid@programming.dev
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        5 months ago

        There were talks a few years ago about changing sd-tmpfiles name but it was decide not worth it due to the churn and bikeshedding it would cause.

        sd-tmpfiles is generally used to create, modify (e.g. permissions) and remove directories on the system. The home.conf is intended for systems that only ship /usr/ (e.g. containers) to create /home/ and /srv/ as a separate subvolume on btrfs

      • MyNameIsRichard@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        I will presume that there is a useful and mostly logical reason for it

        Home directories are temporary, obviously

    • Bitrot@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 months ago

      “Breaking userspace” is often considered a bug even if the code doing so is working as intended. Deleting user data because they bundle a config file deep in the directory tree for a completely different use case was not intended behavior even if one of them is defensive about the logic.