Die korrigierte Version des Systemmanagers systemd 256.1 wurde veröffentlicht, in der ein Problem behoben wurde, das dazu führte, dass der Inhalt des Verzeichnisses /home beim Ausführen des Befehls „systemd-tmpfiles —purge“ gelöscht wurde, der in systemd 256 hinzugefügt wurde, um alle Dateien und Verzeichnisse, die über die Konfiguration in tmpfiles.d erstellt wurden, zu löschen.
In den Versionshinweisen zu systemd 256 und im Handbuchsystem von systemd-tmpfiles wurde darauf hingewiesen, dass die Option „—purge“ alle Dateien und Verzeichnisse löscht, die über die Konfiguration in tmpfiles.d erstellt wurden. Der Name „tmpfiles“ in der Bezeichnung des Dienstprogramms war jedoch irreführend und ließ den Eindruck entstehen, dass das Löschen nur temporäre Dateien betraf.
Die Konfigurationen von tmpfiles.d beschränken sich jedoch nicht nur auf temporäre Dateien, sondern werden auch verwendet, um nicht existierende Verzeichnisse mit Daten automatisch zu erstellen. Insbesondere erklärt sich das Löschen des Inhalts der Home-Verzeichnisse dadurch, dass durch die Datei „/usr/lib/tmpfiles.d/home.conf“ das Verzeichnis „/home“ erstellt wurde und die Eingabe des Befehls „systemd-tmpfiles —purge“ entsprechend zur Löschung führte.
Ursprünglich wurde die Fehlermeldung von Luca Boccassi, einem Entwickler von systemd bei Microsoft, folgendermaßen zurückgewiesen: „Wie kann eine Funktion, die wörtlich dokumentiert ist mit „alle Dateien und Verzeichnisse, die durch einen Eintrag in tmpfiles.d/ erstellt werden, werden gelöscht“, von Ihnen als „gute Idee“ angesehen werden? Haben Sie sich wenigstens die Einträge in tmpfiles.d angesehen, die Sie im Voraus hatten? Vielleicht sollte man nicht einfach willkürliche Befehle ausführen, von denen man nichts versteht, während man ignoriert, was die Dokumentation sagt? Nur so ein Gedanke, oder?“ Daraufhin wurde ihm mitgeteilt, dass die Dokumentation für das Tool systemd-tmpfiles nach wie vor als „Werkzeug zur Erstellung, Löschung und Bereinigung von flüchtigen und temporären Dateien und Verzeichnissen“ beschrieben wird, obwohl dies längst nicht mehr der Realität entspricht.
Letztendlich wurde nach langen Diskussionen in den letzten Tagen das Verhalten von systemd-tmpfiles als fehlerhaft erkannt und geändert. Zu Beginn planten die Entwickler von systemd, die Option „—purge“ zu entfernen, um das versehentliche Löschen von Home-Verzeichnissen zu verhindern. Stattdessen wurde jedoch eine Änderung vorgenommen, die den Geltungsbereich des Befehls „systemd-tmpfiles —purge“ einschränkt – dieser Befehl kann jetzt nur noch ausgeführt werden, wenn ausdrücklich eine bestimmte Konfigurationsdatei aus tmpfiles.d/ in der Befehlszeile angegeben wird, und führt nur zum Löschen der damit verbundenen Dateien und Verzeichnisse. Zudem wurde im man-Leitfaden für systemd-tmpfiles eine genauere Beschreibung der Option sowie eine Warnung vor möglichen Folgen hinzugefügt.
Quelle: opennet.ru
