Néhány nappal ezelőtt itt a blogon megosztottuk a systemd 256-os verziójának megjelenésének hírét , amely számos változást és új funkciót vezetett be, köztük a run0 segédprogramot, amelyről elmondhatnánk, hogy a kiadás fő vonzereje volt.
A systemd 256 említésének oka az, hogy bejelentették a javító verzió, a systemd 256.1 kiadását . Ez a verzió a 256-os verzióban felmerült kritikus probléma megoldására szolgál .
Ez a probléma a /home partíció tartalmának helytelen törlését érintette a systemd-tmpfiles --purge parancs futtatásakor . Eredetileg ennek a beállításnak a célja a tmpfiles.d fájlban konfigurációkon keresztül létrehozott fájlok és könyvtárak törlése volt, de a viselkedés nem felelt meg a dokumentációnak és a felhasználói elvárásoknak.
A konkrét probléma az volt, hogy a segédprogramban a "tmpfiles" név félrevezető volt, mivel a `--purge` opció nemcsak az ideiglenes fájlokat törölte, hanem a `tmpfiles.d` fájlban a konfigurációkon keresztül automatikusan létrehozott könyvtárakat és fájlokat is érintette. Ez magában foglalta az adatkönyvtárak automatikus létrehozását is, például a `/home` könyvtárban található home könyvtárat.
Például a /usr/lib/tmpfiles.d/home.conf fájl felelős a /home könyvtárszerkezetének létrehozásáért, és a systemd-tmpfiles --purge véletlen használata eltávolította ezeket a könyvtárakat és azok tartalmát, ahelyett, hogy csak az ideiglenes fájlokat törölte volna a várt módon.
Ezért jelent meg a systemd 256.1 javító verziója, hogy megoldja ezeket a felhasználók által jelentett inkonzisztenciákat és problémákat, valamint hogy a –purge funkciót megfelelően igazítsa eredeti céljához, biztosítva, hogy csak ideiglenes fájlokat töröljön, és ne befolyásolja a könyvtárstruktúrát. a tmpfiles.d-ben található konfigurációkon keresztül jött létre.
Érdemes megemlíteni, hogy a systemd-tmp fájlokkal kapcsolatos incidens és a partícióban lévő könyvtárak helytelen törlése /home Ez egy szerencsétlen helyzet volt, amely vitát és jelentős javításokat generált a rendszeres megvalósításban.
Sok figyelmeztető üzenet kezdett megjelenni, beleértve az útvonalakat is
/home(nem sikerült visszaállítani a módosítási időket...?). Mit csinál egy ideiglenes tisztítóeszköz a saját könyvtáramban? Ez nem jó. A szívem hevesebben kezdett verni, és amilyen gyorsan csak tudtam, lenyomtam a Ctrl-C billentyűket.Kiderült, hogy a személyes címtáram jó részét törölték. Szerencsére úgy tűnik, hogy a konfigurációs fájlokból indult ki és nem a tényleges adatokból, bár még mindig nem vagyok benne biztos, hogy kihagytam-e valami fontosat. Kikapcsoltam a gépet, hogy később helyreállítsam az adatokat
extundelete(btw, nem működött, valamiért azonnal lefagy; vannak biztonsági mentéseim, de azok kicsit elavultak, túl gyorsan töltöm a meghajtókat).
A Microsoft systemd fejlesztőjének, Luca Boccassinak a kezdeti válasza tükrözte a nem szándékos törlés által érintett felhasználók frusztrációját és zavarodottságát . Megkérdőjelezték egy olyan funkció megvalósítását, amely a dokumentáció szerint válogatás nélkül törölte volna az összes fájlt és könyvtárat, de a gyakorlatban alapvető rendszerstruktúrákat érintett.
Hosszas viták és áttekintések után felismerték hogy a viselkedése systemd-tmpfiles --purge helytelen volt, és korrekciós intézkedésre került sor.
Kezdetben úgy gondolták, hogy teljesen ki kell zárni ezt a lehetőséget --purge, de úgy döntöttünk, hogy korlátozzuk a hatókörét, hogy csak az adott konfigurációhoz közvetlenül kapcsolódó fájlokat és könyvtárakat érintse tmpfiles.d/. Ez a módosítás biztosítja, hogy a parancs csak azt törölje, amit törölni szándékozott, így elkerülhető a nem kívánt mellékhatások a fájlrendszer más területein.
Amivel problémám van, az a dokumentáció. Elmagyarázza, hogy technikailag mit csinálnak az opciók (hát, azt hiszem, igen, nem sokat tudok az itteni architektúráról), de nem magyarázza el, hogy miért teszik azt, amit csinálnak. Amikor valaki csak böngészi a dokumentációt, úgy tűnik, mindhárom lehetőség ugyanazt teszi: ideiglenes fájlok törlése, bár
--purge"teljesebbnek" tűnik, mivel megemlíti, hogy törli az összes fájlt (beleértve a felhasználói adatokat is).
Ezen túlmenően, systemd-tmpfiles felhasználói kézikönyv frissítve hogy pontosabb leírást adjon az opcióról --purge és egyértelműen figyelmeztetni a helytelen használat lehetséges következményeire.
Végül azt javasoljuk, hogy végezze el a szükséges frissítéseket, hogy elkerülje a hasonló helyzetek előfordulását. Ha további információkat szeretne megtudni , a részleteket a következő linken találja .