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

Пасля трох месяцаў распрацоўкі прадстаўлены рэліз сістэмнага мэнэджара systemd 249. У новым выпуску забяспечана магчымасць вызначэння карыстачоў/груп у фармаце JSON, стабілізаваны пратакол Journal, спрошчаная арганізацыя загрузкі якія змяняюць сябар-аднаго дыскавых частак, дададзеная магчымасць прывязкі BPF-праграм да сэрвісаў, рэалізаваны мапінг ідэнтыфікатаў карыстальнікаў у прымантаваных раздзелах, прапанавана вялікая порцыя новых сеткавых налад і магчымасцяў для запуску кантэйнераў.

Асноўныя змены:

  • Дакументаваны пратакол Journal, які можна выкарыстоўваць у кліентах замест пратаколу syslog для лакальнай дастаўкі лог-запісаў. Пратакол Journal рэалізаваны дастаткова даўно і ўжо выкарыстоўваецца ў некаторых кліенцкіх бібліятэках, тым не менш яго афіцыйная падтрымка заяўлена толькі цяпер.
  • У userdb і nss-systemd забяспечана чытанне дадатковых азначэнняў карыстачоў, размешчаных у каталогах /etc/userdb/, /run/userdb/, /run/host/userdb/ і /usr/lib/userdb/, зададзеных у фармаце JSON. Адзначаецца, што паказаная магчымасць падасць дадатковы механізм стварэння карыстачоў у сістэме, забяспечыўшы для яго поўную інтэграцыю з NSS і /etc/shadow. Падтрымка фармату JSON для запісаў карыстальнікаў/груп таксама дазволіць прымацоўваць да карыстальнікаў розныя параметры кіравання рэсурсамі і іншыя наладкі, якія распазнаюць pam_systemd і systemd-logind.
  • У nss-systemd забяспечаны сінтэз запісаў карыстальніка/групы ў /etc/shadow з выкарыстаннем хэшаваных пароляў з systemd-homed.
  • Рэалізаваны механізм, які спрашчае арганізацыю абнаўлення з выкарыстаннем якія замяняюць сябар-сябра дыскавых частак (адна частка актыўны, а другі запасны — абнаўленне капіюецца на запасную частку, пасля чаго ён становіцца актыўным). Калі ў дыскавай выяве прысутнічае два каранёвых або /usr часткі, а udev не вызначыў наяўнасць параметра 'root=' ці выконваецца апрацоўка дыскавых выяў, паказаных праз опцыю «—image» ва ўтылітах systemd-nspawn і systemd-dissect, частка для загрузкі можа быць вылічаны праз параўнанне пазнак GPT (маецца на ўвазе, што ў пазнацы GPT згадваецца нумар версіі змесціва часткі і systemd абярэ частку з свежымі зменамі).
  • У файлы сэрвісаў дададзена налада BPFProgram, пры дапамозе якой можна арганізаваць загрузку BPF-праграм у ядро ​​і кіраванне імі c прывязкай да вызначаных сэрвісаў systemd.
  • У systemd-fstab-generator і systemd-repart дададзеная магчымасць загрузкі з дыскаў, на якіх маецца толькі частка /usr і няма каранёвай часткі (каранёвая частка будзе згенераваны ўтылітай systemd-repart падчас першай загрузкі).
  • У systemd-nspawn опцыя "-private-user-chown" заменена на больш універсальны варыянт "-private-user-ownership", які можа прымаць значэнні "chown" як эквівалент "-private-user-chown", "off" для адключэння старой налады, "map" для мапінга ідэнтыфікатараў карыстачоў у прымантаваных файлавых сістэмах і "auto" для выбару "map" пры наяўнасці неабходнай функцыянальнасці ў ядры (5.12+) або адкату на рэкурсіўны выклік "chown" у адваротным выпадку. Пры дапамозе мапінга можна супаставіць файлы аднаго карыстача на прымантаванай чужой частцы з іншым карыстачом у бягучай сістэме, што дазваляе спрасціць сумеснае выкарыстанне файлаў рознымі карыстачамі. У механізме пераносных хатніх каталогаў systemd-homed мапінг дазволіць карыстачам перасоўваць свае хатнія каталогі на вонкавыя носьбіты і выкарыстоўваць іх на розных кампутарах, раскладка ідэнтыфікатараў карыстачоў на якіх не супадае.
  • У systemd-nspawn у опцыі "-private-user" зараз можна выкарыстоўваць значэнне "identity" для прамога адлюстравання ідэнтыфікатараў карыстальнікаў пры наладзе прасторы імёнаў (user namespace), г.зн. UID 0 і UID 1 у кантэйнеры будуць адлюстраваны ў UID 0 і UID 1 на баку хаста, для скарачэння вектараў нападаў (кантэйнер атрымае магчымасці працэсу толькі ў сваёй прасторы імёнаў).
  • У systemd-nspawn дададзена опцыя «—bind-user» для пракіду ў кантэйнер уліковага запісу карыстальніка, наяўнага ў хост-акружэнні (у кантэйнер мантуецца хатні каталог, дадаецца запіс карыстальніка/групы і выконваецца мапінг UID паміж кантэйнерам і хост-асяроддзем).
  • У systemd-ask-password і systemd-sysusers дададзеная падтрымка запыту ўсталёўваных пароляў (passwd.hashed-password. і passwd.plaintext-password. ) пры дапамозе які з'явіўся ў выпуску systemd 247 механізму бяспечнай перадачы канфідэнцыйных дадзеных з выкарыстаннем прамежкавых файлаў у асобным каталогу. Па змаўчанні ўліковыя дадзеныя прымаюцца ад працэсу з PID1, які атрымлівае іх, напрыклад, ад мэнэджара кіравання кантэйнерамі, што дазваляе арганізаваць наладу пароля карыстальніка пры першай загрузцы.
  • У systemd-firstboot дададзеная падтрымка выкарыстання механізму бяспечнай перадачы канфідэнцыйных дадзеных для запыту розных параметраў сістэмы, што можа ўжывацца для ініцыялізацыі сістэмных налад пры першай загрузцы выявы кантэйнера, у якім няма неабходных налад у каталогу /etc.
  • Падчас PID 1 падчас загрузкі забяспечаны паказ адначасова імя і апісанні юніта. Змяніць выснову можна праз параметр "StatusUnitFormat=combined" у system.conf або опцыю каманднага радка ядра "systemd.status-unit-format=combined"
  • Ва ўтыліты systemd-machine-id-setup і systemd-repart дададзена опцыя «—image» для перадачы файла з ідэнтыфікатарам машыны ў дыскавую выяву або для павелічэння памеру дыскавай выявы.
  • У файл налады частак, выкарыстоўваны ўтылітай systemd-repart, дададзены параметр MakeDirectories, які можна выкарыстоўваць для стварэння адвольных каталогаў у стваранай файлавай сістэме на этапе да адлюстравання ў табліцы частак (напрыклад, для стварэння ў каранёвай частцы каталогаў для кропак мантавання, каб мець магчымасць адразу прымантаваць раздзел у рэжыме толькі для чытання). Для кіравання GPT-сцягамі ў ствараных частках дададзены адпаведныя параметры Flags, ReadOnly і NoAuto. У параметры CopyBlocks рэалізавана значэнне "auto" для аўтаматычнага выбару бягучай загрузнай часткі ў якасці крыніцы пры капіяванні блокаў (напрыклад, калі неабходна перанесці ўласную каранёвую частку на новы носьбіт).
  • У GPT рэалізаваны сцяг "grow-file-system", аналагічны опцыі мантавання x-systemd.growfs і які забяспечвае аўтаматычнае пашырэнне памеру ФС да межаў блокавай прылады, калі памер ФС менш падзелу. Сцяг дастасуем да ФС Ext3, XFS і Btrfs, і можа ўжывацца да аўтаматычна вызначаных частак. Сцяг па змаўчанні ўключаецца для даступных на запіс раздзелаў, якія аўтаматычна ствараюцца праз systemd-repart. У для налады сцяга ў systemd-repart дададзена опцыя GrowFileSystem.
  • У файле /etc/os-release рэалізавана падтрымка новых зменных IMAGE_VERSION і IMAGE_ID для вызначэння версіі і ідэнтыфікатара атамарна абнаўляюцца вобразаў. Для падстаноўкі ўказаных значэнняў у розныя каманды прапанаваны спецыфікатары %M і %A.
  • Ва ўтыліту portablectl дададзены параметр «—extension» для актывацыі пераносных выяў пашырэння сістэмы (напрыклад, праз іх можна распаўсюджваць выявы з дадатковымі сэрвісамі, інтэграванымі ў каранёвую частку).
  • Ва ўтыліце systemd-coredump забяспечана выманне ELF-інфармацыі build-id пры фармаванні core-дампа працэсу, што можа апынуцца карысным для вызначэння да якога пакета ставіцца збойны працэс, калі інфармацыя пра імя і версіі deb- або rpm-пакетаў была ўбудаваная ў ELF- файлы.
  • У udev дададзена новая база абсталявання для прылад FireWire (IEEE 1394).
  • У udev у схему выбару імёнаў сеткавых інтэрфейсаў "net_id" дададзены тры змены, якія парушаюць зваротную сумяшчальнасць: некарэктныя знакі ў імёнах інтэрфейсаў зараз замяняюцца на "_"; імёны слотаў PCI hotplug для сістэм s390 апрацоўваюцца ў форме шаснаццатковых лікаў; дазволена выкарыстанне да 65535 убудаваных PCI-прылад (раней нумары вышэй 16383 блакаваліся).
  • У systemd-resolved у спіс NTA (Negative Trust Anchors) дададзены дамен "home.arpa", рэкамендаваны для лакальных хатніх сетак, але не прымяняецца ў DNSSEC.
  • У параметры CPUAffinity забяспечаны разбор спецыфікатараў "%".
  • У файлы ".network" дададзены параметр ManageForeignRoutingPolicyRules, які можна выкарыстоўваць для выключэння апрацоўкі ў systemd-networkd іншых палітык маршрутызацыі.
  • У файлы ".network" дададзены параметр RequiredFamilyForOnline для вызначэння наяўнасці IPv4 або IPv6 адрасы як прыкметы знаходжання сеткавага інтэрфейсу ў стане "online". У networkctl забяспечана адлюстраванне стану "online" для кожнага лінка.
  • У файлы ".network" дададзены параметр OutgoingInterface для вызначэння выходных інтэрфейсаў пры наладзе сеткавых мастоў.
  • У файлы ".network" дададзены параметр Group, які дазваляе наладзіць групу Multipath для запісаў у секцыі "[NextHop]".
  • У systemd-network-wait-online дададзены опцыі "-4" і "-6" для абмежавання чакання злучэння толькі для IPv4 або IPv6.
  • У налады DHCP-сервера дададзены параметр RelayTarget, які перакладае сервер у рэжым DHCP Ralay. Для дадатковай наладкі DHCP-рэлея прапанаваны опцыі RelayAgentCircuitId і RelayAgentRemoteId.
  • У DHCP-сервер дададзены параметр ServerAddress, які дазваляе відавочна выставіць IP-адрас сервера (інакш адрас выбіраецца аўтаматычна).
  • У DHCP-серверы рэалізаваная секцыя [DHCPServerStaticLease], якая дазваляе наладзіць статычныя прывязкі адрасоў (DHCP leases), паказаўшы прывязкі фіксаваных IP да MAC-адрасоў і наадварот.
  • У наладзе RestrictAddressFamilies рэалізаваная падтрымка значэння «none», пры ўказанні якога сэрвісу не будуць даступныя сокеты любога сямейства адрасоў.
  • У файлах ".network" у секцыях [Address], [DHCPv6PrefixDelegation] і [IPv6Prefix] рэалізавана падтрымка налады RouteMetric, якая дазваляе паказаць метрыку для прэфікса маршруту, створанага для паказанага адрасу.
  • У nss-myhostname і systemd-resolved забяспечаны сінтэз DNS-запісаў c адрасамі для хастоў са адмысловым імем «_outbound», для якіх заўсёды выдаецца лакальны IP, абраны ў адпаведнасці з маршрутамі па змаўчанні, выкарыстоўванымі для выходных злучэнняў.
  • У файлы. што трафік да NTP-сервера будзе накіраваны праз інтэрфейс, праз які гэты адрас быў атрыманы).
  • Дададзеныя налады SocketBindAllow і SocketBindDeny для кіравання доступам да сокетаў, прывязаных да бягучага сэрвісу.
  • Для unit-файлаў рэалізавана ўмоўная настройка ConditionFirmware, якая дазваляе ствараць праверкі, якія ацэньваюць функцыі прашыўкі, такія як праца на сістэмах UEFI і device.tree, а таксама правяраць сумяшчальнасць з пэўнымі магчымасцямі device-tree.
  • Рэалізаваная опцыя ConditionOSRelease для праверкі палёў у файле /etc/os-release. Пры вызначэнні ўмоў праверкі значэнняў палёў дапушчальныя аператары "=", "!=", "<", "<=", ">=", ">".
  • Ва ўтыліце hostnamectl каманды выгляду "get-xyz" і "set-xyz" пазбаўлены ад прэфіксаў "get" і "set", напрыклад, замест "hostnamectl get-hostname" і "hostnamectl "set-hostname" можна выкарыстоўваць каманду "hostnamectl hostname », прысваенне значэння ў якой вызначаецца ўказаннем дадатковага аргумента («hostnamectl hostname value»). Падтрымка старых каманд захавана для забеспячэння сумяшчальнасці.
  • Ва ўтыліце systemd-detect-virt і наладзе ConditionVirtualization забяспечана карэктная ідэнтыфікацыя акружэнняў Amazon EC2.
  • Налада LogLevelMax у unit-файлах зараз ужываецца не толькі да лог-паведамленняў, створаным сэрвісам, але і паведамленням працэсу PID 1, у якіх згадваецца сэрвіс.
  • Дадзена магчымасць уключэння дадзеных SBAT (UEFI Secure Boot Advanced Targeting) у файлы systemd-boot EFI PE.
  • У /etc/crypttab рэалізаваны новыя опцыі «headless» і «password-echo — першая дазваляе прапусціць усе аперацыі, злучаныя з інтэрактыўным запытам пароляў і PIN у карыстача, а другая дае магчымасць наладзіць метад адлюстравання ўводу пароля (нічога не паказваць, паказваць посимвольно і адлюстроўваць зорачкі). У systemd-ask-password для аналагічных мэт дададзена опцыя «—echo».
  • У systemd-cryptenroll, systemd-cryptsetup і systemd-homed пашырана падтрымка разблакавання шыфраваных частак LUKS2 пры дапамозе токенаў FIDO2. Дададзеныя новыя опцыі "-fido2-with-user-presence", "-fido2-with-user-verification" і "-fido2-with-client-pin" для кіравання праверкай фізічнай прысутнасці карыстальніка, верыфікацыяй і неабходнасці ўводу PIN-кода.
  • У systemd-journal-gatewayd дададзеныя опцыі "-user", "system", "merge" і "file", аналагічныя такім жа опцыям journalctl.
  • У дадатак да прамых залежнасцяў паміж юнітамі, якія задаюцца праз параметры OnFailure і Slice, дададзеная падтрымка няяўных зваротных залежнасцяў OnFailureOf і SliceOf, якія могуць быць карысныя, напрыклад, для вызначэння ўсіх unit-ов, якія ўваходзяць у slice.
  • Дададзены новыя тыпы залежнасцяў паміж unit-амі: OnSuccess і OnSuccessOf (супрацьлегласць OnFailure, якая выклікаецца пры ўдалым завяршэнні); PropagatesStopTo і StopPropagatedFrom (дазваляюць распаўсюдзіць падзею прыпынку unit-а на іншы unit); Upholds і UpheldBy (альтэрнатыва Restart).
  • Ва ўтыліце systemd-ask-password з'явілася опцыя «emoji» для кіравання з'яўленнем сімвала замка (🔐) у радку ўводу пароля.
  • Дададзена дакументацыя па структуры дрэва зыходных тэкстаў systemd.
  • Для unit-ов дададзена ўласцівасць MemoryAvailable, якое паказвае колькі памяці застаецца ў unit-а ў запасе да дасягнення ліміту, выстаўленага праз параметры MemoryMax, MemoryHigh ці MemoryAvailable.

Крыніца: opennet.ru

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