- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
It’s actually not a bug, but obvious behavior.
Oh that’s a good normal thing for it to do.
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.But you should have read the docs completely and figured that out /s
So it doesn’t break userspace anymore?
Yeah that’s a big one.
Oops
“Linux kernel was a blot, so here’s our new kernel, written in system-langd, compiled using systemccd using the maked build system. Normal assembly was also a blot, so we came up with sasmd. The whole hardware is a blot, so we came up with hardwared. They’re all tightly integrated. The name of the company does not vibe with our vision, so we are renaming it to ibmd. Your brain is also a blot, so here’s braind. Now you can dump that outdated, prokaryotic and fleshy crap you call a brain, and use systemd instead.”
Imagine what would happen if one service goes down. Fucking hell, the Armageddon is real.
using systemd instead of rm -Rf is not the Unix way!
Thanks Microsoft
I’ve been saying, Microsoft hired Poettering to thank him for fucking up Linux so much with systemd.
If it was intended but not properly documented as it says, why does it keep being called a bug?
“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.
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.
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
a “bug”