I accidentally untarred archive intended to be extracted in root directory, which among others included some files for /etc directory.
I went on to rm -rv ~/etc, but I quickly typed rm -rv /etc instead, and hit enter, while using a root account.

  • rushmonke@ttrpg.network
    link
    fedilink
    arrow-up
    8
    ·
    1 day ago

    I fucking hate using rm for these very reasons.

    There’s another program called “trash-cli” that gives you a trash command instead of going straight to deletion.

    I’m not sure why more distros don’t include it by default, or why more tutorials don’t mention it.

  • MonkeMischief@lemmy.today
    link
    fedilink
    arrow-up
    53
    ·
    2 days ago

    OOOOOOOOOOOF!!

    One trick I use, because I’m SUPER paranoid about this, is to mv things I intend to delete to /tmp, or make /tmp/trash or something.

    That way, I can move it back if I have a “WHAT HAVE I DONE!?” moment, or it just deletes itself upon reboot.

      • MonkeMischief@lemmy.today
        link
        fedilink
        arrow-up
        20
        ·
        edit-2
        2 days ago

        That’s certainly something you can do! I would personally follow the recommendation against aliasing rm though, either just using the trash tool’s auto complete or a different alias altogether.

        Reason being as someone mentioned below: You don’t want to give yourself a false sense of security or complacency with such a dangerous command, especially if you use multiple systems.

        I liken it to someone starting to handle weapons more carelessly because the one they have at home is “never loaded.” Better safe than sorry.

        Lol we should have “rules of rm safety”:

        • Assume rm is always sudo unless proven otherwise.
        • (EDIT)Finger should be off the Enter key until you are certain you are ready to delete.
        • Never point rm at something you aren’t willing to permanently destroy.
        • Always be aware of your target directory, and what is recursively behind it!
        • Sylveon@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          6
          ·
          2 days ago

          I think this is the best approach. I’ve created a short alias for my trash tool and also aliased rm to do nothing except print a warning. This way you train yourself to avoid using it. And if I really need it for some reason I can just type \rm.

          If you want to train yourself even more effectively you can also alias rm to run sl instead :)

          • MonkeMischief@lemmy.today
            link
            fedilink
            arrow-up
            1
            ·
            17 hours ago

            you can also alias rm to run sl instead :)

            Choo-choo!!

            Hehe I just thought of a hilariously nefarious prank: alias ls to sl. 😂

    • Alberat@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      2 days ago

      i always do “read;rm ./file” which gives me a second to confirm and also makes it so i don’t accidentally execute it out of my bash history with control-r

    • underscores@lemmy.zip
      link
      fedilink
      English
      arrow-up
      55
      arrow-down
      2
      ·
      3 days ago

      I agree with this take, don’t wanna blame the victim but there’s a lesson to be learned.

      • neatchee@piefed.social
        link
        fedilink
        English
        arrow-up
        64
        arrow-down
        1
        ·
        3 days ago

        except if you read the accompanying text they already stated the issue by accidentally unpacking an archive to their user directory that was intended for the root directory. that’s how they got an etc dir in their user directory in the first place

        • ThanksForAllTheFish@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          arrow-down
          4
          ·
          3 days ago

          Could make one archive intended to be unpacked from /etc/ and one archive that’s intended to be unpacked from /home/Alice/ , that way they wouldn’t need to be root for the user bit, and there would never be an etc directory to delete. And if they run tar test (t) and pwd first, they could check the intended actions were correct before running the full tar. Some tools can be dangerous, so the user should be aware, and have safety measures.

          • neatchee@piefed.social
            link
            fedilink
            English
            arrow-up
            10
            ·
            3 days ago

            they acquired a tar package from somewhere else. the instructions said to extract it to the root directory (because of its file structure). they accidentally extracted it to their home dir

            that is how this happened. not anything like what you were saying

            • ThanksForAllTheFish@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              15 hours ago

              I understand that they were intending to unpack from / and they unpacked from /home/ instead. I’m just arguing that the unpack was already a potentially dangerous action, especially if it had the potential to overwrite any system file on the drive. It’s in the category of “don’t run stuff unless you are certain of what it will do”. For this reason it would make sense to have some way of checking it was correct before running it. Any rms to clean up files will need similar steps before running as well. Yes this is slower, but would argue deleting /etc by mistake and fixing it is slower still.

              I’m suggesting 3 things:

              • Confirm the contents of the tar
              • Confirm where you want to extract the contents
              • Have backups in case this goes wrong somehow

              Check the contents:

              • use "tar t’’ to print the contents before extracting, this lists all the files in the tar without extracting the contents. Read the output and check you are happy with it

              Confirm where:

              • run pwd first, or specify “-C ‘/output-place/’” during extraction, to prevent output to the wrong folder

              Have backups:

              • Assume this potentially dangerous process of extracting to /etc (you know this because you checked) may break some critical files there, so make sure this directory is properly backed up first, and check these backups are current.

              I’m not suggesting that everyone knows they should do this. But I’m saying that problems are only avoidable by being extra careful. And with experience people build a knowledge of what may be dangerous and how to prevent that danger. If pwd is /, be extra careful, typos here may have greater consequences. Always type the full path, always use tab completion and use “trash-cli” instead of rm would be ways to make rm safer.

              If you’re going to be overwriting system files as root, or deleting files without checking, I would argue that’s where the error happened. If they want to do this casually without checking first, they have to accept it may cause problems or loss of data.

    • WatchfulConsole@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      I’ll provide some cover. This is my current home directory: bin/ bmp/ cam/ doc/ eot/ hhc/ img/ iso/ mix/ mku/ mod/ mtv/ mus/ pkg/ run/ src/ tmp/ vid/ zim/. It’s your home directory, enjoy it however you like.

    • Ephera@lemmy.ml
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      [OP] accidentally untarred archive intended to be extracted in root directory, which among others included some files for /etc directory.

    • palordrolap@fedia.io
      link
      fedilink
      arrow-up
      7
      ·
      3 days ago

      I dunno, ~/bin is a fairly common thing in my experience, not that it ends up containing many actual binaries. (The system started it, miss, honest. A quarter of the things in my system’s /bin are text based.)

      ~/etc is seriously weird though. Never seen that before. On Debians, most of the user copies of things in /etc usually end up under ~/.local/ or at ~/.filenamehere

        • palordrolap@fedia.io
          link
          fedilink
          arrow-up
          4
          ·
          2 days ago

          ~/bin is the old-school location from before .local became a thing, and some of us have stuck to that ancient habit.

      • db2@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        3 days ago

        I use ~/config/* to put directories named the same as system ones. I got used to it in BeOS and brought it to LFS when I finally accepted BeOS wasn’t doing what I needed anymore, kept doing it ever since.

    • vapeloki@lemmy.world
      link
      fedilink
      arrow-up
      2
      arrow-down
      3
      ·
      edit-2
      3 days ago

      So, you don’t do backups of /etc? Or parts of it?

      I have those tars dir ssh, pam, and portage for Gentoo systems. Quickset way to set stuff up.

      And before you start whining about ansible or puppet or what, I need those maybe 3-4 times a year to set up a temporary hardened system.

      But may, just maybe, don’t assume everyone is a fucking moron or has no idea.

      Edit Or just read what op did, I think that is pretty much the same

      • FauxLiving@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        But may, just maybe, don’t assume everyone is a fucking moron or has no idea.

        Well, OP didn’t say they used Arch, btw so it’s safe to assume.

        (I hate that this needs a /s)

  • frozen@lemmy.frozeninferno.xyz
    link
    fedilink
    arrow-up
    9
    ·
    2 days ago

    Reminds me of when I had a rogue ~ directory sitting in my own home directory (probably from a badly written script). Three seconds into rm -rf ~ and me wondering why it was taking so long to complete, I CTRL+C, reboot, and pray.

    Alas, it was a reinstall for me that day (good excuse to distro hop, anyway). Really glad I don’t mount my personal NAS folder in my home directory anymore, holy shit.

  • kertain@sh.itjust.works
    link
    fedilink
    arrow-up
    12
    ·
    2 days ago

    I am new to Linux and just getting somewhat comfortable as my daily driver, very proud of myself that I got the joke pretty quickly :)

    • wabasso@lemmy.ca
      link
      fedilink
      English
      arrow-up
      6
      ·
      2 days ago

      Ok speaking of this, where do a distro’s config and boot scripts even come from? Are they in a package? Like on Debian so the .debs have metadata that can add cron jobs and such?

  • dunz@feddit.nu
    link
    fedilink
    arrow-up
    16
    ·
    3 days ago

    Be happy that you didn’t remeber the ~ and put a space between it and etc😃.

  • BCsven@lemmy.ca
    link
    fedilink
    arrow-up
    58
    arrow-down
    1
    ·
    3 days ago

    Oof. I always type the whole path just because I have made this mistake before.

    • BillyClark@piefed.social
      link
      fedilink
      English
      arrow-up
      15
      ·
      3 days ago

      That doesn’t protect you from typos.

      rm -rv /home/schmuck /etc

      “Whoops, I accidentally added a space.”

      I have three ways around this:

      1. ls ~/etc … <press up arrow, replace ls with rm -rv>
      2. ls ~/etcrm -rv !$
      3. Add the commands to a simple script and use variables to remove the danger of a command line.
      • BCsven@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        3 days ago

        Thankfully I don’t hit the space bar randomly (yet) but btrfs snapshotting has saved the day for other mishaps

        • BillyClark@piefed.social
          link
          fedilink
          English
          arrow-up
          3
          ·
          3 days ago

          I think the bigger point is that if you type the entire path, you are obviously typing more characters, which gives more opportunities for typos, whatever they may be.

          It’s far safer to find ways to type less. Less typing, fewer typos. As long as you can do it safely.

          • BCsven@lemmy.ca
            link
            fedilink
            arrow-up
            1
            ·
            2 days ago

            I don’t think that applies when you intend to type something but accidental type enter after your first slash / :)