4 ms·
As a linux neophyte, I once struggled to remember whether the trailing slash on a directory was important. So I typed "rm -rf", and pasted the directory name "
by knodi123 10y ago
As a linux neophyte, I once struggled to remember whether the trailing slash on a directory was important. So I typed "rm -rf", and pasted the directory name "schoolwork/project1 " (with a trailing space), but then I waffled and decided to add a trailing slash. So I changed it to "rm -rf schoolwork/project1 /".
That's my theory as to what they did.
- Symbiote 10y agorm -Rf test / rm: it is dangerous to operate recursively on ‘/’ rm: use --no-preserve-root to override this failsafe GNU rm, but I don't know when it was introduced.
- r3bl 10y agoQuick googling around, and it seems like this behavior (in Ubuntu) changed somewhere near the end of 2008: https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/174283/comments/10 https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/174... tl;dr That's when coreutils Ubuntu package switched from "--no-preserve-root" to "--preserve-root" by default.
- blitzkrieg3 10y agoThis is relatively recent, and caused quite a stir when it was introduced. Certainly not around during Toy Story 2. edit: More info: https://lwn.net/Articles/327141/ https://lwn.net/Articles/327141/
- coldpie 10y agoOne feature I've always wanted is to make a directory non-deletable without otherwise changing the directory's functionality. So if I do "rm -rf ~/work" I don't lose anything, but I can still do "touch ~/work/whatever". As far as I know, this is impossible.
- slau 10y agoYou don't actually need write access to a file/directory to delete it. You only need write access to the parent (removing or adding a file modifies the container, not the contained). Remove write access to the parent directory, while keeping traversal and read rights, and you'll be sorted.
- coldpie 10y agoBut then I can't add files to my home directory...
- slau 10y agoYou said it was impossible. I simply indicated it wasn't.
- coldpie 10y agoThe question was perhaps imprecisely phrased, but I think you can figure out what I'm trying to accomplish.
- vidarh 10y agoSo don't put the stuff you want to protect this way in your home directory, but somewhere else, and symlink the relevant directories to your home directory.
- coldpie 10y agoQuite clumsy, but I guess it works. I'll keep it in mind, thanks for the idea.
- knodi123 10y ago# mkdir /tmp/foo # touch /tmp/foo/.immutable # chattr +i /tmp/foo/.immutable # rm -rf /tmp/foo It's not EXACTLY what you asked for, but the .immutable file cannot be deleted until you call chattr -i on it, which protects the directory....
- coldpie 10y agoThat doesn't protect siblings of <foo/.immutable>...
- alephnil 10y agoIf I remember correctly, they were using Solaris at the time, and I know for sure that Solaris did not have this safety net, nor did Linux at the time. The requirement of --no-preserve-root was introduced almost a decade later.