From: Дмитрий <dmitry@udalov.online> To: Distributions development <devel-distro@lists.altlinux.org> Subject: [devel-distro] Применение systemd-tmpfiles Date: Thu, 6 Feb 2025 19:32:11 +0600 Message-ID: <a8a6e134-b6f6-4c16-a786-e750a72998f6@udalov.online> (raw) Здравствуйте, я бы хотел еще раз затронуть тему systemd-sysusers и systemd-tmpfiles. Я честно признаюсь что не являюсь мейнтейнером и не знаю в подробностях как работает сборка пакетов в ALT поэтому был бы рад услышать Ваше мнение. Я видел что в bugzilla заведен репорт для поддержки systemd-sysusers поэтому хотел бы еще раз затронуть эту тему и обсудить текущие состояние systemd-tmpfiles который как мне казалось уже интегрирован и придерживается. Начнем с плюсов и целей которые я вижу своим субьективным взглядом: 1. Декларативная конфигурация базовых системных сущностей. Пользователи, группы, каталоги и временные файлы определяются в конфигурационных файлах, это упрощает их управление и поддержку. 2. Повышенная надёжность. Система всегда гарантированно запускается с правильно созданными системными учетными записями и необходимой инфраструктурой каталогов, что снижает вероятность сбоев и проблем с правами доступа. 2. Герметичность системы. В образах, где /usr является неизменяемым (например атомарные), а все динамические данные создаются при загрузке, эти инструменты позволяют обеспечить полную функциональность системы без ручного вмешательства в /var каталог 3. Упрощённое обновление системы. Благодаря декларативным инструментам обновление сводится к изменению централизованных конфигурационных файлов, определяющих системных пользователей, группы и необходимые каталоги (например, /etc/passwd и /etc/group), вместо прямого редактирования этих файлов вручную или путем переустановки пакета. Проверка работы systemd-tmpfiles Я проверял разные пакеты и их поведение в основном идентичное следующем примеру. Для корректной работы пакета redis требуется наличие системной группы *_redis*, пользователя *_redis* и следующих директорий: */var/lib/redis* – для хранения данных, */var/log/redis* – для логов, */run/redis* – для временных файлов, создаваемых во время работы (например, PID-файлов). в tmpfiles.d мы видим следующее: cat redis.conf d /run/redis 0755 _redis _redis что я ожидал увидеть (приблизительно): cat redis.conf # Создание временной директории для redis d /run/redis 0755 _redis _redis # Создание постоянных директорий для данных и логов d /var/lib/redis 0755 _redis _redis - d /var/log/redis 0750 _redis _redis - Из этого можно сделать вывод, что в текущей реализации systemd-tmpfiles в основном используется для создания временных каталогов (например, */run/redis*) у большинства пакетов. Создание постоянных директорий (например, */var/lib/redis* и */var/log/redis*) выполняется на этапе установки пакета. Хотя есть исключения, некоторые пакеты создают для себя /var/lib директорию но это выглядит как случайность нежели правило. В контексте атомарного образа возникают определённые ограничения при переключении между различными ветками. Если в рамках одной системы пакеты продолжают создавать каталоги в /var в момент установки, то при переходе на образы с отличающейся пакетной базой могут возникнуть конфликты. Это происходит потому, что /var трактуется как пространство пользователя, которое не должно изменяться вручную, а управляться исключительно через конфигурационные механизмы. Для проблемы отсутствия поддержки systemd-sysusers я уже реализовал скрипт, который динамически сравнивает системных пользователей и группы внутри образа и корректирует локальные файлы /etc/passwd и /etc/group. Однако с неполной поддержкой systemd-tmpfiles мне пока не удалось найти решение – единственный вариант, который остаётся, – попробовать написать макросы для rpm.
reply other threads:[~2025-02-06 13:32 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=a8a6e134-b6f6-4c16-a786-e750a72998f6@udalov.online \ --to=dmitry@udalov.online \ --cc=devel-distro@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Distributions development This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \ devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com public-inbox-index devel-distro Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel-distro AGPL code for this site: git clone https://public-inbox.org/public-inbox.git