Edit: The link.
There were lots of good titles for this submission, as in "Breaking news: Poettering clueless?" to finally disprove Betteridge's law, or "systemd surprisingly not as good as advertised" or "Breaking new: systemd broken" or "Poettering censors critics after epic fail".
Systemd implementation of "rm -rf .*" will follow ".." to upper directory and erase /
How to reproduce:
# mkdir -p /foo/dir{1,2}
# touch /foo/.bar{1,2}
# cat /etc/tmpfiles.d/test.conf
R! /foo/.* - - - - -
Reboot.
After the issue was fixed, finally Poettering added this gem of wisdom:
I am not sure I'd consider this much of a problem. Yeah, it's a UNIX pitfall, but "rm -rf /foo/.*" will work the exact same way, no?
The answer to this question, as many clarified for him, obviously is a loud "NO!". After being told a couple of times in no uncertain terms, the thread was closed for non-developers
poettering locked and limited conversation to collaborators 4 hours ago
for which I proposed the "freedom-of-speech" department (although I admit it is a weak proposal).
(Score: 0) by Anonymous Coward on Tuesday April 18 2017, @10:36PM (1 child)
> the unit files implement COMEFROM logic.
...wut...
(Score: 3, Interesting) by sjames on Wednesday April 19 2017, @12:40AM
That's what I thought when I saw it. COMEFROM [wikipedia.org] is a humorous suggestion as a counterpart to GOTO. It's frequently considered a GREAT way to encourage impossible to debug obfuscated code.
By allowing a unit file to declare that another unit depends on it, systemd effectively implements COMEFROM with all of the pitfalls that entails.