• @crimsoncobalt
    link
    178 days ago

    Does this really work? Wouldn’t rm remove itself in /bin early in the process?

    • @[email protected]
      link
      fedilink
      48
      edit-2
      8 days ago

      I think it would continue even after it’s own deletion as the binary is already loaded into memory, so process is not dependent on the file system. Still doubt that it’ll complete successfully. Most likely the system crashes in the middle.

      • @[email protected]
        link
        fedilink
        138 days ago

        I thought - - no-preserve root also needed to be added as an argument for self destruct to completely work.

        • @[email protected]
          link
          fedilink
          11
          edit-2
          8 days ago

          Yes, though you could also do rm -rf /* afaik to not need --no-preserve-root

          Edit: I just realized that the * is already in the meme. So this should already work as is. Alternatively you could always use the good old way of “act now and remove all French roots of your system: rm -fr / --no-preserve-root

            • @[email protected]
              link
              fedilink
              27 days ago

              because it won’t let you do that:

              elvith@testvm:~$ sudo rm -fr /

              rm: it is dangerous to operate recursively on ‘/’

              rm: use --no-preserve-root to override this failsafe

      • DefederateLemmyMl
        link
        fedilink
        English
        18 days ago

        as the binary is already loaded into memory

        That’s not the reason why it continues. It’s because there’s still a file descriptor open to rm.

    • DefederateLemmyMl
      link
      fedilink
      English
      18
      edit-2
      8 days ago

      In Unix/Linux, a removed file only disappears when the last file descriptor to it is gone. As long as the file /usr/bin/rm is still opened by a process (and it is, because it is running) it will not actually be deleted from disk from the perspective of that process.

      This also why removing a log file that’s actively being written to doesn’t clear up filesystem space, and why it’s more effective to truncate it instead. ( e.g. Run > /var/log/myhugeactivelogfile.log instead of rm /var/log/myhugeactivelogfile.log), or why Linux can upgrade a package that’s currently running and the running process will just keep chugging along as the old version, until restarted.

      Sometimes you can even use this to recover an accidentally deleted file, if it’s still held open in a process. You can go to /proc/$PID/fd, where $PID is the process ID of the process holding the file open, and find all the file descriptors it has in use, and then copy the lost content from there.

      • DefederateLemmyMl
        link
        fedilink
        English
        1
        edit-2
        8 days ago

        That’s not the reason why it continues. It’s because there’s still a file descriptor open to rm.

    • Johanno
      link
      fedilink
      98 days ago

      Since you forgot to add - - preserve-root It won’t go too far. But at some point the system wants to load a file that is deleted and the kernel will panic. System crash. Delete incomplete. But rest assured, the important stuff is gone.

      • DefederateLemmyMl
        link
        fedilink
        58 days ago

        Since you forgot to add - - preserve-root It won’t go too far

        Go on then … try it.

        Or don’t because you will erase your system. (Hint: it’s in the asterisk)

        • Johanno
          link
          fedilink
          27 days ago

          Or was it non preserve. I never tried it though. I guess a vm should be fine to test it. On the other hand I don’t care enough.

          • DefederateLemmyMl
            link
            fedilink
            English
            2
            edit-2
            7 days ago

            The flag is called --no-preserve-root, but the flag wouldn’t do anything here because you’re not deleting root (/), you’re deleting all non-hidden files and directories under root (/*), and rm will just let you do it.

    • @Wilzax
      link
      17 days ago

      deleted by creator