Пасля двух месяцаў распрацоўкі
Асноўныя змены:
- У 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-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
[]