A apărut o actualizare corectivă a managerului de sistem systemd 256.1, în care a fost rezolvată problema care ducea la ștergerea conținutului directorului /home atunci când se executa comanda „systemd-tmpfiles —purge”, adăugată în systemd 256 pentru a elimina toate fișierele și directoarele create prin setările din tmpfiles.d.
În notele de versiune ale systemd 256 și în manualul de utilizare pentru systemd-tmpfiles, s-a precizat că opțiunea „—purge” șterge toate fișierele și directoarele create prin setările tmpfiles.d, dar denumirea „tmpfiles” în numele utilitarului a fost înșelătoare și a creat impresia că ștergerea se referă doar la fișiere temporare.
În plus, setările tmpfiles.d nu se limitează la fișiere temporare și sunt folosite și pentru crearea automată a directoarelor in existente cu date. În special, ștergerea conținutului directoarelor personale se explică prin faptul că, prin intermediul fișierului „/usr/lib/tmpfiles.d/home.conf”, a fost creat directorul „/home” și, astfel, comanda „systemd-tmpfiles —purge” ducea la ștergerea acestuia.
Inițial, mesajul de eroare a fost respins de Luca Boccassi, dezvoltator de systemd de la Microsoft, în felul următor: „Astfel, funcția care este documentată literalmente ca „toate fișierele și directoarele create de înregistrarea tmpfiles.d/ vor fi șterse”, despre care nu știați nimic, suna ca o „idee bună”? Ați verificat măcar ce înregistrări tmpfiles.d aveți deja? Poate că nu ar trebui să executați comenzi aleatorii despre care nu aveți cunoștință, ignorând ce vă spune documentația? Doar o gândire, ah.” Ca răspuns, i s-a indicat că în documentația utilitarului systemd-tmpfiles este încă descris ca „un instrument pentru crearea, ștergerea și curățarea fișierelor și directoarelor temporare și volatile”, deși acest lucru nu mai este valabil de mult timp.
În cele din urmă, după discuții îndelungate în ultimele zile, comportamentul systemd-tmpfiles a fost recunoscut ca fiind eronat și a fost modificat. Inițial, pentru a evita ștergerea greșită a directorilor de acasă, dezvoltatorii systemd au intenționat să elimine opțiunea „—purge”, dar apoi au adoptat o modificare care limitează domeniul de aplicare al comenzii „systemd-tmpfiles —purge” — această comandă poate fi acum executată doar cu specificarea explicită în linia de comandă a unui anumit fișier de configurare din tmpfiles.d/ și va duce la ștergerea doar a fișierelor și directorilor asociați. În plus, în manualul systemd-tmpfiles a fost adăugat o descriere mai detaliată a opțiunii și un avertisment cu privire la posibilele consecințe.
Sursa: opennet.ro
