Выпуск сістэмнага мэнэджэра systemd 242

[:ru]

Пасля двух месяцаў распрацоўкі прадстаўлены рэліз сістэмнага мэнэджэра 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). Для выкарыстання ў камандным радку і nspawn-юнітах прапанавана падтрымка розных опцый, апісаных у спецыфікацыі 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);
  • Для unit-файлаў рэалізавана настройка "CPUQuotaPeriodSec=", якая вызначае перыяд часу, адносна якога вымяраецца квота на працэсарны час, якая задаецца праз наладу "CPUQuota=";
  • Для unit-файлаў рэалізавана настройка "ProtectHostname=", якая забараняе сэрвісам змяняць інфармацыю пра імя хаста, нават пры наяўнасці адпаведных паўнамоцтваў;
  • Для unit-файлаў рэалізавана налада "NetworkNamespacePath=", якая дазваляе прывязаць прастору імёнаў да сэрвісаў або socket-юнітам праз указанне шляху да файла прасторы імёнаў у псеўда-ФС /proc;
  • Дададзена магчымасць адключэння падстаноўкі зменных асяроддзі працэсам, якія запускаюцца пры дапамозе налады «ExecStart=», праз даданне знака «:» перад камандай запуску;
  • Для таймераў (юніты .timer) прапанаваны новыя сцягі "OnClockChange=" і
    "OnTimezoneChange=", пры дапамозе якіх можна кіраваць выклікам юніта пры змене сістэмнага часу або часавага пояса;

  • Дададзены новыя налады «ConditionMemory=» і «ConditionCPUs=», якія вызначаюць умовы выкліку юніта ў залежнасці ад памеру памяці і колькасці ядраў CPU (напрыклад, рэсурсаёмісты сэрвіс можна запускаць толькі калі маецца неабходны аб'ём АЗП);
  • Дададзены новы юніт 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

[: be]

Пасля двух месяцаў распрацоўкі прадстаўлены рэліз сістэмнага мэнэджэра 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). Для выкарыстання ў камандным радку і nspawn-юнітах прапанавана падтрымка розных опцый, апісаных у спецыфікацыі 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);
  • Для unit-файлаў рэалізавана настройка "CPUQuotaPeriodSec=", якая вызначае перыяд часу, адносна якога вымяраецца квота на працэсарны час, якая задаецца праз наладу "CPUQuota=";
  • Для unit-файлаў рэалізавана настройка "ProtectHostname=", якая забараняе сэрвісам змяняць інфармацыю пра імя хаста, нават пры наяўнасці адпаведных паўнамоцтваў;
  • Для unit-файлаў рэалізавана налада "NetworkNamespacePath=", якая дазваляе прывязаць прастору імёнаў да сэрвісаў або socket-юнітам праз указанне шляху да файла прасторы імёнаў у псеўда-ФС /proc;
  • Дададзена магчымасць адключэння падстаноўкі зменных асяроддзі працэсам, якія запускаюцца пры дапамозе налады «ExecStart=», праз даданне знака «:» перад камандай запуску;
  • Для таймераў (юніты .timer) прапанаваны новыя сцягі "OnClockChange=" і
    "OnTimezoneChange=", пры дапамозе якіх можна кіраваць выклікам юніта пры змене сістэмнага часу або часавага пояса;

  • Дададзены новыя налады «ConditionMemory=» і «ConditionCPUs=», якія вызначаюць умовы выкліку юніта ў залежнасці ад памеру памяці і колькасці ядраў CPU (напрыклад, рэсурсаёмісты сэрвіс можна запускаць толькі калі маецца неабходны аб'ём АЗП);
  • Дададзены новы юніт 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

[]

Дадаць каментар