Пользователи systemd столкнулись с проблемой, приводившей к удалению домашних каталогов

Опубликован корректирующий выпуск системного менеджера systemd 256.1, в котором устранена проблема, приводившая к удалению содержимого раздела /home при выполнении команды «systemd-tmpfiles —purge», добавленной в systemd 256 для удаления всех файлов и каталогов, созданных через настройки в tmpfiles.d.

В примечании к выпуску systemd 256 и в man-руководстве systemd-tmpfiles было указано, что опция «—purge» удаляет все файлы и каталоги, созданные через настройки tmpfiles.d, но название «tmpfiles» в названии утилиты вводило в заблуждение и создавало впечатление, что удаление касается только временных файлов.
При этом настройки tmpfiles.d не ограничиваются временными файлами и также используются для автоматического создания несуществующих каталогов с данными. В частности, удаление содержимого домашних каталогов объясняется тем, что при помощи файла «/usr/lib/tmpfiles.d/home.conf» создавался раздел «/home» и, соответственно, команда «systemd-tmpfiles —purge» приводила к его удалению.

Первоначально сообщение об ошибке было отвергнуто Лукой Боккасси (Luca Boccassi), разработчиком systemd из Microsoft, следующим образом: «Таким образом, функция, которая буквально задокументирована как «все файлы и каталоги, созданные записью tmpfiles.d/, будут удалены», о чём вы ничего не знали, звучала как «хорошая идея»? Вы хотя бы пошли и посмотрели, какие записи tmpfiles.d у вас были заранее? Может быть, не стоит просто запускать случайные команды, о которых вы ничего не знаете, игнорируя при этом то, что вам говорит документация? Просто мысль, ага». В ответ ему указали на то, что в документации утилита systemd-tmpfiles до сих пор описывается как «инструмент для создания, удаления и очистки непостоянных и временных файлов и каталогов», несмотря на то, что это давно не соответствует действительности.

В конечном итоге, после долгих обсуждений в последние несколько дней, поведение systemd-tmpfiles всё таки было признанно ошибочным и изменено. Вначале для исключения ошибочного удаления домашних каталогов разработчики systemd намеревались удалить опцию «—purge», но затем приняли изменение, ограничивающее область действия команды «systemd-tmpfiles —purge» — данная команда теперь может быть выполнена только при явном указании в командной строке конкретного файла конфигурации из tmpfiles.d/ и приведёт к удалению лишь связанных с ним файлов и каталогов. Кроме того, в man-руководство systemd-tmpfiles добавлено более подробное описание опции и предупреждение о возможных последствиях.

Источник: opennet.ru