Издание на системния мениджър systemd 242

След два месеца разработка, издаден е втората версия на системния мениджър systemd 242. Сред новостите можем да отбележим поддръжката на L2TP тунели, възможността за управление на поведението на systemd-logind при рестартиране чрез променливи на средата, поддръжката на разширени зареждащи дялове XBOOTLDR за монтиране в /boot, възможността за зареждане с коренен дял в overlayfs и много нови настройки за различни типове юнити.

Основни промени:

  • В systemd-networkd е осигурена поддръжка на L2TP тунели;
  • В sd-boot и bootctl е реализирана поддръжка на XBOOTLDR (Extended Boot Loader) дялове, предназначени за монтиране в /boot, в допълнение към ESP дялове, монтирани в /efi или /boot/efi. Ядра, настройки, образи initrd и EFI могат да се зареждат както от ESP дялове, така и от XBOOTLDR дялове. Това изменение позволява използването на стартирания sd-boot в по-консервативни сценарии, когато самият стартер е разположен в ESP, а зарежданите ядра и свързаните с тях метаданни са поставени в отделен дял;
  • Добавена е възможността за зареждане с предаване на опцията на ядрото "systemd.volatile=overlay", което позволява разполагането на коренния дял в overlayfs и организирането на работа върху достъпен само за четене образ на коренната директория с запис на промените в отделна директория в tmpfs (промените в тази конфигурация се губят след рестартиране). Подобно в systemd-nspawn е добавена опция "—volatile=overlay" за използване на подобна функционалност в контейнери;
  • В systemd-nspawn е добавена опция "—oci-bundle", позволяваща използването на набори runtime за осигуряване на изолирано стартиране на контейнери, съответстващи на изискванията на спецификацията Open Container Initiative (OCI). Предложена е поддръжка на различни опции, описани в спецификацията OCI, например, за изключване на части от файловата система могат да се използват настройки "—inaccessible" и "Inaccessible", а за настройка на стандартните потоци изход са добавени опции "—console" и "—pipe";
  • Добавена е възможността за управление на поведението на systemd-logind чрез променливи на средата: $SYSTEMD_REBOOT_TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU и
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. С помощта на тези променливи можете да свържете свои обработчици на процеса на рестартиране (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu и
    /run/systemd/reboot-to-boot-loader-entry) или вообще отключить их (при выставлении значения в false);
  • В командата "systemctl reboot" са добавени опции "—boot-load-menu=" и
    «—boot-loader-entry=», позволяващи след перезареждане да изберете конкретна точка от менюто за зареждане или режим на зареждане;
  • Добавена е нова команда за sandbox изолация «RestrictSUIDSGID=», използваща seccomp за забрана на създаване на файлове с флагове SUID/SGID;
  • Осигурено е прилагане по подразбиране на ограниченията «NoNewPrivileges» и «RestrictSUIDSGID» в услуги с активиран режим на динамично генериране на идентификатора на потребителя («DynamicUser»);
  • Настройката по подразбиране в .link файловете MACAddressPolicy=persistent е променена, за да обхване повече устройства. Интерфейсите на мрежовите мостове, тунелите (tun, tap) и агрегирани линкове (bond) не идентифицират себе си освен по името на мрежовия интерфейс, затова това име сега се използва като основа за свързване на MAC и IPv4 адреси. Освен това, добавена е настройката «MACAddressPolicy=random», която може да се използва за свързване на MAC и IPv4 адреси на устройствата на случаен принцип;
  • Генерираните чрез systemd-fstab-generator юнит файлове «.device» вече не включват съответните юнити «.mount» като зависимости в секцията «Wants=». Просто свързване на устройство вече не води до автоматично стартиране на юнита за монтаж, но подобни юнити все още могат да се стартират по други причини, например като част от local-fs.target или като зависимост от други юнити, зависещи от local-fs.target;
  • В командите «networkctl list/status/lldp» е добавена поддръжка на маски («*» и т.н.) за филтриране на определени групи мрежови интерфейси по част от името им;
  • Променливата на средата $PIDFILE сега се задава с използване на абсолютен път, настроен в услугите чрез параметър «PIDFile=;
  • Към броя резервни DNS сървъри, използвани, ако основният DNS не е посочен явно, са добавени публични сървъри Cloudflare (1.1.1.1). За да преопределите списъка на резервни DNS сървъри, можете да използвате опцията «-Ddns-servers=»;
  • При откритие на контролер на USB устройство (USB Device Controller) се осигурява автоматично стартиране на новия обработчик usb-gadget.target (когато системата работи на периферно USB устройство);
  • За юнит файловете е реализирана настройка «CPUQuotaPeriodSec=», определяща период от време, относно който се измерва квотата на процесорното време, задавана чрез настройка «CPUQuota=»;
  • За unit файлов е реализирана настройка «ProtectHostname=», която забранява на услугите да променят информацията за името на хоста, дори при наличие на съответни права;
  • За unit файлове е реализирана настройка «NetworkNamespacePath=», която позволява свързване на пространство с имена към услуги или socket единици чрез задаване на път към файла на пространството в псевдо-ФС /proc;
  • Добавена е възможност за деактивиране на подмяната на променливи на околната среда за процесите, стартирани с настройката «ExecStart=», чрез добавяне на символа «:» преди стартиращата команда;
  • За таймери (юнити .timer) са предложени нови флагове «OnClockChange=» и
    «OnTimezoneChange=», с които може да се управлява повикването на единицата при промяна на системното време или на часовия пояс;
  • Добавени са нови настройки «ConditionMemory=» и «ConditionCPUs=», определящи условията за повикване на единицата в зависимост от размера на паметта и броя на ядрата на CPU (например, ресурсоемка услуга може да се стартира само ако има необходимото количество RAM);
  • Добавен е нов юнит time-set.target, който приема локално зададеното системно време, без използване на сверка с външни сървъри за точно време чрез юнита time-sync.target. Новият юнит може да бъде използван от услуги, на които им е достатъчна точността на несинхронизирани локални часовници;
  • В «systemctl start» и подобни команди е добавена опция «—show-transaction», при указване на която се извежда обобщение на всички операции, добавени в опашката заради заявената операция;
  • В systemd-networkd е реализирано определяне на ново състояние ‘enslaved’, използвано вместо ‘degraded’ или ‘carrier’ за мрежовите интерфейси, които са част от агрегирани връзки или мрежови мостове. За основните интерфейси в случай на проблем с една от съставните връзки е добавено състояние ‘degraded-carrier’;
  • В юнити .network е добавена опция «IgnoreCarrierLoss=» за запазване на мрежовите настройки в случай на загуба на връзка;
  • С настройката «RequiredForOnline=» в юнитите .network сега може да се зададе минимално допустимо състояние на връзката, необходимо за превод на мрежовия интерфейс в «online» и задействане на обработчика systemd-networkd-wait-online;
  • В systemd-networkd-wait-online е добавена опция «—any» за изчакване готовността на всеки от посочените мрежови интерфейси вместо на всички, както и опция «—operational-state=» за определяне на състоянието на връзката, свидетелстващо за готовността;
  • В .network модулите са добавени настройки «UseAutonomousPrefix=» и «UseOnLinkPrefix=», които могат да се използват за игнориране на префикси при получаване
    на анонси от маршрутизатора IPv6 (RA, Router Advertisement);
  • В .network модулите са добавени настройки «MulticastFlood=», «NeighborSuppression=» и «Learning=» за промяна на параметрите на мрежовия мост, както и настройка «TripleSampling=» за промяна на режима на TRIPLE-SAMPLING на виртуалните интерфейси CAN;
  • В .netdev модулите са добавени настройки «PrivateKeyFile=» и «PresharedKeyFile=», с които можете да зададете лични и споделени (PSK) ключове за интерфейсите WireGuard VPN;
  • В /etc/crypttab са добавени опции same-cpu-crypt и submit-from-crypt-cpus, които управляват поведението на планировчика при миграция между ядра на CPU за работи, свързани с криптиране;
  • В systemd-tmpfiles е осигурена обработка на файл за заключване преди извършване на операции в директории с временни файлове, което позволява временно да бъде спряна работата по почистването на стари файлове (например, при разархивиране на tar-архив в /tmp могат да се разкрият много стари файлове, които не могат да бъдат изтрити, докато действията с тях не приключат);
  • В командата «systemd-analyze cat-config» е осигурена възможност за анализ на конфигурация, разпределена на няколко файла, например, потребителски и системни настройки, съдържание tmpfiles.d и sysusers.d, правила udev и т.н.
  • В «journalctl» е добавена опция «—cursor-file=» за определяне на файл за зареждане и запазване на позиционния указател;
  • В systemd-detect-virt е добавено разпознаване на хипервизора ACRN и подсистемата WSL (Windows Subsystem for Linux) за по-нататъшно разклонение с помощта на условния оператор «ConditionVirtualization»;
  • По време на инсталацията на systemd (при изпълнение на «ninja install») е спряно създаването на символични линкове в директорията /etc за файлове systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service и systemd-timesyncd.service. За създаването на тези файлове вече е необходимо да се изпълни командата «systemctl preset-all».

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster