Here's an alternative title for this post: these days, two lines in a systemd service file can easily constrain arbitrary applications to just the files and resources they need, and only those.
You can always use a simpler init system if you want
tl;dr: systemd isn't meant to be an init system, it's meant to manage services, and the alternative world where you don't have a unified system for managing services and events actually sucks.
embrace and extinguish unix philosophy.
> the alternative world where [] actually sucks.
You should bear in mind that there are plenty of people here on HN who have had the experience of running pre-systemd unixes and they know exactly how much "the alternative world" sucked. Spoiler: not much.
I don't really care to argue about it.
And worst: want to understand what the actual security properties of your policy are? The answer is buried very, very deep.
You do realize distros can also change SysV shell scripts in ways that break your use case as well, right?
Systemd didn’t “break” anything at all here. This author’s arcane debugging workflow doesn’t work for certain units who have opted into the new security mechanisms. But that is hardly systemd’s fault.
systemd introduced optional socket activation. Boom: sshd in process list is faked on Ubuntu 22+.
systemd introduced optional structured logging. Voila: every distro now ships with unremovable journald.
systemd brand introduced optional systemd-resolved, easily the worst project, and soon it's going to be mandatory for DNS resolution.
Whatever systemd makes optional, practically becomes mandatory to use in distros because systemd developers do not code optional things for them to go unnoticed.