Пасля паўгода распрацоўкі прадстаўлены рэліз сістэмнага мэнэджара systemd 257. Ключавыя змены: новыя ўтыліты systemd-sbsign і systemd-keyutil, падтрымка MPTCP пры актывацыі па сокеце, пачатковая падтрымка зборкі з Сі-бібліятэкай Musl, утыліта updatectl для кіравання ўсталёўкай абнаўленняў праз system магчымасць запуску сэрвісаў у асобных PID namespace, абарона ад выпадковага выдалення файлаў пры выкарыстанні "systemd-tmpfiles -purge".
Сярод змен у новым выпуску:
- Дададзена новая ўтыліта systemd-sbsign для запэўнення лічбавым подпісам выкананых файлаў у фармаце PE (Portable Executable), прызначаных для выкарыстання пры загрузцы ў рэжыме EFI Secure Boot. Для фармавання подпісы могуць выкарыстоўвацца рухавічкі і правайдэры, якія прадстаўляюцца бібліятэкай OpenSSL. Systemd-sbsign можа ўжывацца ў якасці альтэрнатывы прыкладанням sbsigntool і pesign ва ўтыліце ukify пры фармаванні ўніверсальных выяў ядра UKI (Unified Kernel Image), якія аб'ядноўваюць у адным файле загрузнік для UEFI (UEFI boot stub), выява ядра Linux і загружанае ў памяць сістэмнае асяроддзе initrd.
- Дададзена новая ўтыліта systemd-keyutil, якая рэалізуе розныя аперацыі над зачыненымі ключамі і сертыфікатамі X.509. Напрыклад, systemd-keyutil можа выкарыстоўвацца для праверкі магчымасці загрузкі зачыненых ключоў і сертыфікатаў, а таксама вымання з іх адчыненых ключоў у фармаце PEM.
- У unit-ах ".socket", выкарыстоўваных для забеспячэння працы механізму актывацыі па сокеце (запуск працэсаў пры спробе ўсталёўкі сеткавага злучэння), рэалізавана падтрымка MPTCP (Multipath TCP), пашырэнні пратаколу TCP для арганізацыі працы TCP-злучэнні з дастаўкай пакетаў адначасова па некалькіх маршрутам праз розныя сеткавыя інтэрфейсы, прывязаныя да IP-адрасам.
- У склад уключаны змены, неабходныя для зборкі з выкарыстаннем стандартнай Сі-бібліятэкі Musl.
- У розныя кампаненты systemd, якія выводзяць індыкатары прагрэсу выканання аперацый (напрыклад, systemd-repart, systemd-sysupdate/updatectl і importctl), дададзена магчымасць выкарыстання ANSI-паслядоўнасцяў для анімавання адлюстравання прагрэсу. Падобныя паслядоўнасці пакуль падтрымліваюцца толькі ў Windows Terminal (мяркуецца, што з часам падобная магчымасць будзе перанесена і ў эмулятары тэрміналаў для Linux).
- Пашыраны магчымасці кампанента systemd-sysupdate, які ўжываецца для аўтаматычнага вызначэння, загрузкі і ўсталёўкі абнаўленняў з выкарыстаннем атамарнага механізму замены частак, файлаў або каталогаў (выкарыстоўваюцца два незалежныя часткі/файла/каталога, на адным з якіх знаходзіцца бягучы які працуе рэсурс, а на іншым усталёўваецца чарговае абнаўленне, пасля чаго раздзелы/файлы/каталогі змяняюцца месцамі). На практыцы, systemd-sysupdate ужо прымяняецца ў GNOME OS.
У дадатак да працэсу systemd-sysupdate дададзены аднайменны сэрвіс, які дазваляе выкарыстоўваць D-Bus для кіравання абнаўленнем сістэмы непрывілеяваным карыстачом. Для кіравання сэрвісам у склад таксама ўключана новая ўтыліта updatectl. і выкарыстання толькі ўжо загружаных на лакальную сістэму версій. падтрымка вываду ў фармаце JSON.
- Для сэрвісаў рэалізавана новая ўласцівасць "PrivatePIDs", пры дапамозе якога можна арганізаваць запуск працэсаў з PID 1 (init-працэс) у асобнай прасторы ідэнтыфікатараў працэсаў (PID namespace). У ствараным для запускаемага працэсу асяроддзі будуць бачныя толькі працэсы са створанага для яго прасторы імёнаў.
- У правілы udev дададзена падтрымка супастаўленняў без уліку рэгістра сімвалаў (напрыклад, 'ATTR{foo}==i»abcd»'). Праз udev рэалізавана падаванне непрывілеяваным лакальным карыстачам доступу («uaccess») да прылады /dev/udmabuf, якое неабходна для працы з IPMI-камерамі праз libcamera. У udev забяспечана распазнанне розных апаратных криптокошельков з інтэрфейсам USB і выстаўленне для іх уласцівасці ID_HARDWARE_WALLET, што дазваляе ўжыць да іх рэжым "uaccess" для доступу непрывілеяваных карыстачоў.
- У файл /etc/os-release дададзены новыя палі RELEASE_TYPE, EXPERIMENT і EXPERIMENT_URL. "RELEASE_TYPE" можа прымаць значэнні "experimental", "development", "stable" і "lts" для аддзялення стабільных версій ад змешчаных у распрацоўцы і эксперыментальных зборак. Параметры EXPERIMENT і EXPERIMENT_URL прызначаны для тлумачэння сутнасці эксперыментальнай зборкі.
- Ва ўтыліту run0, якая развіваецца ў якасці замены праграмы sudo, дададзеная опцыя "-shell-prompt-prefix", вызначальная радок-прэфікс запрашэння каманднай абалонкі. Па змаўчанні ў якасці прэфікса выводзіцца emoji "🦸" для візуальнага вылучэння сеансу з падвышанымі прывілеямі.
- У systemd-tmpfiles у пазбяганне памылковага выдалення не тых файлаў опцыя «—purge» зараз ужываецца толькі да налад у tmpfiles.d/, для якіх відавочна выстаўлены сцяг «$». Для выканання аперацыі «-purge» таксама зараз патрабуецца ўказанні прынамсі аднаго файла з каталога tmpfiles.d/. Для радкоў з тыпам 'L' дададзены сцяг '?', пры ўказанні якога сімвалічная спасылка будзе створана толькі пры наяўнасці мэтавага файла.
- У сэрвісным мэнэджэры і спадарожных утылітах працягнуты пераклад кода адсочвання працэсаў на выкарыстанне PIDFD замест PID.
- Для сэрвісаў рэалізаваная магчымасць указання ў параметры «RestartMode» значэння «debug», пры якім перазапуск збойнага сэрвісу будзе выкананы з уключэннем адладкавага рэжыму (выстаўляецца зменная асяроддзі DEBUG_INVOCATION=1), а значэнне LogLevelMax будзе часова падвышана да адладкавага ўзроўня.
- У апрацоўшчыку PID 1 рэалізавана магчымасць загрузкі правіл для LSM-модуля IPE (Integrity Policy Enforcement), якія вызначаюць палітыку забеспячэння цэласнасці для ўсёй сістэмы (якія аперацыі дапушчальныя і якім спосабам варта верыфікаваць сапраўднасць кампанентаў).
- У unit-файлы ".timer" дададзена опцыя "DeferReactivation", якая дазваляе прапусціць чарговую актывацыю па таймеры, калі сэрвіс яшчэ не завяршыў сваё выкананне з часу мінулай актывацыі.
- У параметры unit-файлаў PrivateUsers рэалізаваная магчымасць указання значэння "identity" для ўключэння мапінга ідэнтыфікатараў карыстальнікаў пры стварэнні прасторы імёнаў (user namespace).
- У параметр unit-файлаў PrivateTmp дададзена падтрымка значэння «disconnected», пры якім для каталогаў /tmp/ і /var/tmp/ будуць задзейнічаны асобныя асобнікі tmpfs.
- У параметр unit-файлаў ProtectControlGroups дададзеная падтрымка новых рэжымаў "private" і "strict", пры выстаўленні якіх для сэрвісу ствараецца новая прастора імёнаў cgroup (cgroup namespace) і манціруецца cgroupfs. Пры выстаўленні опцыі "strict" мантаванне cgroupfs вырабляецца ў рэжыме толькі для чытання.
- У параметрах StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory і ConfigurationDirectory прадстаўлена магчымасць выкарыстання сцяга ':ro' для абмежавання доступу да адпаведных каталогаў рэжымам толькі для чытання.
- У параметр каманднага радка ядра "systemd.machine_id" дададзеная падтрымка значэння "firmware", пры якім ідэнтыфікатар сістэмы (machine ID) будзе вылічаны на аснове UUID з SMBIOS/DeviceTree.
- Дададзена падтрымка сістэмных выклікаў mseal(), listmount() і statmount(), якія з'явіліся ў нядаўніх выпусках ядра Linux.
- Ва ўтыліты resolvectl, timedatectl і systemd-inhibit дададзена падтрымка інтэрактыўнай аўтарызацыі пры дапамозе Polkit.
- Ва ўтыліту systemctl дададзена магчымасць выкарыстання сцяга "-now" у камандзе "reenable".
- Ва ўтыліту systemd-mount дададзена опцыя "-json" для вываду ў фармаце JSON (напрыклад, пры ўказанні разам з "-list-devices" у фармаце JSON будзе выведзены спіс прылад).
- Ва ўтыліту "localectl" дададзены опцыі "-l" і "-full" для адключэння абрэзкі доўгіх радкоў пры выснове.
- У sleep.conf дададзена опцыя HibernateOnACPower якая дазваляе адкласці пераключэнне ў спячы рэжым да адключэння прылады ад стацыянарнай крыніцы харчавання.
- У systemd-sysusers у радкі "u" дададзеная падтрымка мадыфікатара "!", пры дапамозе якога можна ствараць цалкам заблакаваныя ўліковыя запісы карыстальнікаў (раней для блакавання карыстальніка выкарыстоўвалася ўстаноўка некарэктнага пароля, што, напрыклад, не прыводзіла да блакіроўкі пры аўтэнтыфікацыі па ключах у SSH ).
- У systemd-coredump дададзена опцыя "EnterNamespace", якая прадстаўляе доступ да прасторы кропак мантавання любых аварыйна завершаных працэсаў для атрымання іх адладкавых знакаў. На практыцы опцыя можа быць карыснай для арганізацыі зваротнай трасіроўкі (backtrace) core-файлаў ад прыкладанняў, якія запускаюцца ў ізаляваных кантэйнерах.
- У systemd-logind уключаная апрацоўка камбінацыі Ctrl-Alt-Shift-Esc для адпраўкі кампанентам карыстацкага асяроддзя сігналу org.freedesktop.login1.SecureAttentionKey з запытам высновы дыялогу бяспечнага ўваходу ў сістэму. Рэалізавана настройка "DesignatedMaintenanceTime" для аўтаматычнага планавання завяршэння працы ў зададзены час. Па аналогіі з падтрымкай прылад DRM і evdev дададзеная падтрымка налады доступу непрывілеяваных карыстачоў да прылад hidraw (гульнявыя кантролеры і джойсцікі).
- У systemd-machined дададзена падтрымка рэгістрацыі непрывілеяванымі кліентамі віртуальная машына і кантэйнераў. Прадастаўлены доступ да функцыянальнасці systemd-machined праз API Varlink, апроч D-Bus.
- У файл канфігурацыі networkd.conf дададзена новая секцыя «[IPv6AddressLabel]» для наладкі пазнак і прэфіксаў для адрасоў IPv6
- У каманду 'networkctl edit' дададзена опцыя "—stdin" для атрымання змесціва файла са стандартнага струменя. У каманды 'networkctl edit' і 'networkctl cat' дададзена падтрымка рэдагавання і адлюстраванні файлаў .netdev праз указанне сеткавага інтэрфейсу. Дададзена опцыя "-no-ask-password" для адключэння інтэрактыўнай аўтарызацыі.
- Ва ўтыліты ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart, і systemd-sbsign дададзена опцыя "-certificate-source" для загрузкі сертыфіката X.509 праз правайдэр OpenSSL замест прамой загрузкі з файла.
- У systemd-boot дададзена магчымасць выкарыстання кнопак кіравання гучнасцю для перасоўвання ўверх і ўніз па загрузным меню, што можа быць карысным на такіх прыладах, як смартфоны. Ва ўтыліту bootctl дададзеная падтрымка ўсталёўкі БД UEFI Secure Boot у фармаце ESL(db/dbx/…) для systemd-boot.
- У journalctl дададзена опцыя "-list-invocation" для паказу спісу выклікаў unit-аў і опцыя "-invocation" ("-I") для паказу логаў, звязаных толькі з пэўным выклікам.
- У systemd-nspawn дададзеная падтрымка непрывілеяванага выкарыстання FUSE (Filesystem in Userspace) у кантэйнерах. Пры выкарыстанні опцыі "-bind-user" забяспечаны пракід у кантэйнер SSH-ключоў карыстальніка, неабходных для доступу па SSH.
- У libsystemd дададзены новы праграмны інтэрфейс "sd-json", які выкарыстоўвае фармат JSON, а таксама інтэрфейс "sd-varlink", які выкарыстоўвае IPC Varlink.
- Рэкамендаваная базавая версія ядра падвышаная да выпуску 5.4, сфармаванага ў 2019 году. У наступным годзе плануюць спыніць падтрымку больш старых ядраў і адзначыць выпуск 5.4 у якасці мінімальна падтрымліваецца базавай версіі.
- Падтрымка cgroups v1 прызнана састарэлай і па змаўчанні адключаная (для ўключэння ў камандным радку ядра неабходна паказаць SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 у дадатак да актывацыі ў наладах systemd). У наступным выпуску systemd 258 плануецца поўнасцю выдаліць код, звязаны з cgroups v1. У версіі systemd 258 таксама намечана выдаленне падтрымкі скрыптоў сэрвісаў System V.
Крыніца: opennet.ru
