Кілька днів тому ми ділимось новинами тут, у блозі випуску версії systemd 256, яка була версією, яка представила велику кількість змін і нових функцій, і серед них була утиліта run0, яка, можна сказати, була головною привабливістю цього випуску.
Причина згадування до systemd 256 було оголошено новина про випуск в виправлений випуск, systemd 256.1. Який бувзапущено для вирішення проблеми критик з'явився у версії 256.
Ця проблема вплинуло на некоректне видалення вмісту розділу /home при виконанні команди systemd-tmpfiles – очищення. Спочатку такий варіант був призначений для видалення файлів і каталогів створений через конфігурацій у tmpfiles.d, але поведінка не відповідала документації та очікуванням користувачів.
Конкретна проблема полягала в тому, що назва "tmpfiles" в утиліті була оманлива, оскільки опц –чистка не обмежувалася видаленням лише тимчасових файлів, але це також вплинуло на каталоги та файли, створені автоматично через налаштування у tmpfiles.d. Це включало автоматичне створення каталогів даних, таких як домашні каталоги в /home.
Наприклад, файл /usr/lib/tmpfiles.d/home.conf відповідав за створення структури каталогів в будинку, і ненавмисне використання systemd-tmpfiles –purge видалило ці каталоги і його вміст, замість того, щоб просто очищати лише тимчасові файли, як очікувалося.
Ось чому була випущена коригувальна версія systemd 256.1, щоб вирішити ці невідповідності та проблеми, про які повідомляють користувачі, а також належним чином узгодити функцію –purge з її початковим призначенням, гарантуючи, що вона видаляє лише тимчасові файли та не впливає на структуру каталогів. створений за допомогою конфігурацій у tmpfiles.d.
Варто відзначити, що інцидент із файлами systemd-tmp та некоректним видаленням каталогів у розділі /home
Це була прикра ситуація, яка викликала дискусії та значні виправлення у реалізації systemd.
Почало з’являтися багато попереджень, у тому числі про маршрути в
/home
(не вдалося відновити час модифікації...?). Що робить інструмент тимчасового очищення в моєму домашньому каталозі? Це не добре. Моє серце почало битися швидше, і я натиснув Ctrl-C якомога швидше.Виявляється, значну частину мого особистого каталогу було видалено. На щастя, схоже, що він почався з конфігураційних файлів, а не з фактичних даних, хоча я все ще не впевнений, чи не пропустив щось важливе. Я вимкнув машину, щоб пізніше відновити дані
extundelete
(До речі, не спрацювало, чомусь миттєво вилітає; у мене є резервні копії, але вони трохи застарілі, я надто швидко заповнюю диски).
Перша відповідь розробника Лука Боккассі з systemd у Microsoft відображає розчарування та збентеження серед користувачів постраждали від цього небажаного видалення. Реалізація функції, яка, згідно з документацією, мала видаляти всі файли та каталоги без розбору, але яка на практиці вплинула на основні системні структури, була під сумнівом.
Після тривалих обговорень і перевірок його визнали що поведінка systemd-tmpfiles --purge
було неправильним, і було вжито заходів щодо виправлення.
Спочатку вважалося повністю виключити цю опцію --purge
, але ми вирішили обмежити його область, щоб він впливав лише на файли та каталоги, безпосередньо пов’язані з певною конфігурацією в tmpfiles.d/
. Ця модифікація гарантує, що команда видаляє лише те, що вона має намір видалити, таким чином уникаючи небажаних побічних ефектів в інших областях файлової системи.
З чим у мене проблема, так це з документацією. Це пояснює, що роблять параметри, з технічної точки зору (ну, я думаю, що так, я не дуже знаю про архітектуру тут), але це не пояснює, чому вони роблять те, що вони роблять. Коли хтось просто переглядає документацію, всі три варіанти, здається, роблять те саме: очищають тимчасові файли, хоча
--purge
Це здається «більш повним», оскільки в ньому згадується, що він видаляє всі файли (включаючи дані користувача).
Крім того, оновлено посібник користувача systemd-tmpfiles щоб надати більш точний опис опції --purge
та чітко попередити про можливі наслідки його неправильного використання.
Нарешті, ми рекомендуємо виконати відповідні оновлення, щоб уникнути подібної ситуації. Якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі в за наступним посиланням.