Достъпен системен мениджър systemd 259

След три месеца разработка излезе версия на системния мениджър systemd 259. Ключови промени: поддръжка на стандартната библиотека Musl, команда „run0 —empower“ за изпълнение на привилегировани действия без смяна на UID, динамично зареждане на външни библиотеки, необходими в libsystemd, игнориране на конфигурационни файлове чрез добавяне на „.ignore“ към името.

Сред промените в новия релийз:

  • Добавена е частична поддръжка на стандартната C-библиотека Musl, включваща се чрез задаване на стойност „musl“ в опцията „libc“ в системата за изграждане Meson. Поради факта, че библиотеката Musl не предоставя функционалност NSS, при изграждане на systemd с Musl компонентите nss-systemd, nss-resolve, systemd-homed, systemd-nsresourced, systemd-userdbd, както и параметърът DynamicUser и възможността за неприлагане на systemd-nspawn не са налични. Разработчиците на systemd все още не гарантират, че поддръжката на Musl ще остане в бъдещи версии. Решението ще зависи от успешността на развитието на прослойка, реализираща допълнителна функционалност над Musl, а също така и от търсенето на проекта и съобщенията за специфични за Musl грешки.
  • В утилитата run0, представена като безопасна алтернатива на програмата sudo, работеща над systemd-run, е добавена опцията „—empower“, която позволява стартиране на нова сесия с повишени привилегии, без да се преминава на потребителя root. Изпълнението на привилегировани действия без смяна на UID е организирано чрез задаване на capabilities-флагове, като CAP_SYS_ADMIN, достатъчни за достъпа до повечето привилегировани системни повиквания. Стартираните процеси също са поставени в отделна група „empower“, за която е предоставен достъп до повечето действия на Polkit.
  • Решено е да се премахне в следващото издание поддръжката на скриптове за услуги във формат System V. За премахване са намечени компонентите systemd-sysv-install, systemd-rc-local-generator и systemd-sysv-generator. В следващото издание също така се предвижда повишаване на изискванията за минимални версии: ядро на Linux 5.10, glibc 2.34, openssl 3.0.0, python 3.9.0, libxcrypt 4.4.0, util-linux 2.37, elfutils 0.177, cryptsetup 2.4.0, libseccomp 2.4.0.
  • В рамките на инициативата за намаляване на зависимостите в libsystemd е реализирано динамично зареждане на библиотеките libacl, libblkid, libseccomp, libselinux, libmount чрез извикване на dlopen() в ситуации, когато техните функции наистина са необходими. Чрез dlopen() също е реализирана работа с подсистемата за одит на Linux и с PAM. Функционалността, която преди това се извикваше чрез библиотеката-прослойка libcap, е вградена в libsystemd.
  • В systemd-resolved е добавена възможността за прикрепяне на локални обработвачи, които се извикват при всяко искане за резолвиране на локални имена. Обработвачите се разположени в каталога /run/systemd/resolve.hook/.
  • В базата данни с данни за потребителите е добавено поле UUID, а в утилитата userdbctl е добавена опция „—uuid“ за търсене по UUID.
  • Осигурено е игнориране на конфигурационни файлове с имена, завършващи на „.ignore“.
  • В systemd-importd е реализирана вградена логика за работа с TAR-архиви, използваща libarchive вместо извикването на утилитата GNU tar. Реализирана е възможност за стартиране на systemd-machined и systemd-importd с привързаност към потребители, а не на системно ниво, с зареждане на системни образи в ~/.local/state/machines/. За избор на режим на работа в утилитата importctl са добавени опции „—user“ и „—system“.
  • Режимът на съхранение на журнала по подразбиране е променен от ‘auto’ на ‘persistent’ (по-рано режимът зависеше от наличието на каталога /var/log/journal).
  • В systemd-networkd и systemd-nspawn е прекратена поддръжката за създаване на правила за транслация на адреси (NAT) чрез iptables/libiptc. Оставена е само поддръжката на nftables.
  • В systemd-boot и systemd-stub е прекратена поддръжката на TPM 1.2 (оставена е поддръжката на TPM 2.0).
  • В systemd-machined по подразбиране е осигурено монтиране на „скрити“ дискови образи, чиито имена започват с точка, в режим само за четене.
  • Разширен API, базиран на протокола Varlink, който сега може да се използва за достъп до настройките на услугите. Реализирани са IPC-извиквания Reload() и Reexecute(). Добавени са извиквания за достъп до функционалността и настройките на systemd-repart, systemd-resolved и systemd-networkd.
  • Добавена е настройка ExecReloadPost, позволяваща организиране на стартиране на команди след презареждане на конфигурацията на услугата.
  • За услугите са реализирани свойства OOMKills и ManagedOOMKills, съдържащи броя на процесите, принудително завършени от ядрото или systemd-oomd поради липса на памет.
  • За временни услуги е добавено свойство RootDirectoryFileDescriptor, определяющее файловия дескриптор на кореновия каталог.
  • Добавена настройка UserNamespacePath, позволяваща свързването на unit с пространството на идентификаторите на потребителите (user namespace) чрез указване на път в псевдо-ФС /proc, по аналогия с настройките IPCNamespacePath и NetworkNamespacePath. В systemd-nspawn за указване на мрежовото пространство на имена в секция [Network] на файловете .nspawn е добавена настройка NamespacePath.
  • В systemd-sysext и systemd-confext е реализирана поддръжка на отделни конфигурационни файлове /etc/systemd/systemd-sysext.conf и /etc/systemd/systemd-confext.conf. Добавена е възможността за използване на променливата на средата SYSTEMD_SYSEXT_OVERLAYFS_MOUNT_OPTIONS и $SYSTEMD_CONFEXT_OVERLAYFS_MOUNT_OPTIONS за настройки на параметрите на монтиране на Overlayfs.
  • В systemd-udevd е добавена настройка OPTIONS="dump-json" за извеждане на състоянието на текущото събитие във формат JSON. В функцията net_id е реализирана генериране на предсказуеми имена на безжични мрежови интерфейси на системи с DeviceTree. Осигурена е генерирането на символични линкове /dev/gpio/by-id/... за устройства GPIO.
  • В командата „homectl update“ е добавена възможността за използване на опцията „--recovery-key“ за добавяне на резервни ключове към съществуваща потребителска сметка (по-рано подобни ключове можеха да бъдат добавяни само при създаване на потребител).
  • В systemd-homed са добавени опции „--prompt-shell“ и „--prompt-groups“ за интерактивен избор на команден интерпретатор и група по време на първоначалното зареждане с използването на услугата systemd-homed-firstboot.service. В systemd-firstboot е добавена опция „--prompt-keymap-auto“ за запитване на разклада на клавиатурата при работа през локалната конзола по време на първоначалното зареждане.
  • В systemd-boot е добавена възможност за задаване на нивото на детайлност на логовете чрез параметъра log-level в loader.conf или SMBIOS полето io.systemd.boot.loglevel.
  • В systemd-networkd за DHCP сървъра са добавени опции EmitDomain и Domain, а също така е реализиран обработчик за определяне на имената на хостовете, предоставяни чрез DHCP, чрез DNS резолвинг.
  • В systemd-run е добавена опция „--root-directory“ за стартиране на услугата в посочен коренов каталог. В systemd-run и run0 е добавена опция „--same-root-dir“ („-R“) за стартиране на услугата в същия коренов каталог, какъвто е на стартиращия.
  • В systemd-modules-load е реализирано разпаралеляване на зареждането на модули на ядрото.
  • В systemd-integrity-setup е добавена поддръжка на алгоритмите HMAC-SHA256, PHMAC-SHA256 и PHMAC-SHA512.

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

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