Даступны systemd 245 з рэалізацыяй пераносных хатніх каталогаў

Пасля трох месяцаў распрацоўкі прадстаўлены рэліз сістэмнага мэнэджэра Systemd 245. У новым выпуску ў склад дададзены новыя кампаненты systemd-homed і systemd-repart, уключаная падтрымка пераносных профіляў карыстачоў у фармаце JSON, забяспечана магчымасць вызначэння прастор імёнаў у systemd-journald, дададзеная падтрымка механізму "pidfd". Цалкам перароблены сайт праекта, На якім сабрана большая частка даступнай дакументацыі і прапанаваны новы лагатып.

Даступны systemd 245 з рэалізацыяй пераносных хатніх каталогаў

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

  • Дададзены сэрвіс systemd-homed, Які забяспечвае кіраванне пераноснымі хатнімі каталогамі, якія пастаўляюцца ў форме які мантуецца файла-выявы, дадзеныя ў якім зашыфраваныя. Systemd-homed дазваляе ствараць самадастатковыя асяроддзі для дадзеных карыстача, якія можна пераносіць паміж рознымі сістэмамі, не клапоцячыся аб сінхранізацыі ідэнтыфікатараў і канфідэнцыйнасці. Параметры ўліковых дадзеных карыстальніка прывязаныя да хатняга каталога, а не да сістэмных налад - замест /etc/passwd, /etc/group і /etc/shadow выкарыстоўваецца профіль у фармаце JSON. Больш падрабязна гл. у мінулым анонсе systemd-homed.
  • Дададзены спадарожны systemd-homed кампанентuserdb»(«systemd-userdb»), які транслюе ўліковыя запісы UNIX/glibc NSS у запісы JSON і падае ўніфікаваны API Varlink для запыту і перабору запісаў. У прывязаным да хатняга каталога профілі JSON паказаныя параметры, неабходныя для працы карыстача, уключаючы дадзеныя аб імі, хэшы пароля, ключах для шыфравання, квотах і якія прадстаўляюцца рэсурсах. Профіль можа быць завераны лічбавым подпісам, якая захоўваецца на вонкавым токене Yubikey. Для кіравання профілямі прапанавана ўтыліта "userdbctl". Падтрымка профіляў у фармаце JSON дададзеная ў розныя кампаненты systemd, уключаючы systemd-logind і pam-systemd, якія дазваляюць для карыстачоў пераносных каталогаў арганізаваць аўтэнтыфікацыю, уваход, наладу зменных асяроддзі, стварэнне сеансу, усталёўку лімітаў і да т.п. У далейшым чакаецца з'яўленні магчымасці генерацыі JSON профіляў фрэймворкам sssd з захоўваннем налад карыстачоў у LDAP.
  • Дададзена новая ўтыліта "systemd-repart", прызначаная для пераразбіўкі табліц дыскавых частак у фармаце GPT. Структура раздзелаў вызначаецца ў дэкларатыўнай форме праз файлы, якія апісваюць якія раздзелы павінны ці могуць існаваць. Пры кожнай загрузцы фактычная табліца частак параўноўваецца з гэтымі файламі, пасля чаго дадаюцца адсутнічаюць часткі або, калі вызначаны ў наладах адносны або абсалютны памер не супадае, павялічваецца памер існых. Дапускаюцца толькі інкрыментальныя змены, г.зн. выдаленне і скарачэнне памеру немагчыма, раздзелы могуць быць толькі дададзены і павялічаны.
    Утыліта ў заснаваным разлічана на запуск з initrd і аўтаматычна вызначае дыск, на якім размешчаны каранёвая частка, што не патрабуе дадатковай канфігурацыі, акрамя файлаў з вызначэннем змен.

    На практыцы systemd-repart можа апынуцца карысным для выяў аперацыйнай сістэмы, якія першапачаткова могуць пастаўляцца ў мінімальным выглядзе, а пасля першай загрузкі пашырацца да памеру наяўнай блокавай прылады або дапаўняцца дадатковымі часткамі (напрыклад, каранёвая частка можа пашырацца для ахопу ўсёй кружэлкі або пасля першай загрузкі стварацца частка падпампоўкі або /home). Іншым ужываннем могуць стаць канфігурацыі з двума якія змяняюць адзін аднаго часткамі - першапачаткова можа пастаўляцца толькі першая частка, а другі стварацца пры першай загрузцы.

  • З'явілася магчымасць запуску некалькіх асобнікаў systemd-journald, кожны з якіх вядзе логі ў сваёй прасторы імён. Акрамя асноўнага systemd-journald.service у каталогу .service прапанаваны шаблон для стварэння дадатковых асобнікаў, прывязаных да сваіх прастор імёнаў пры дапамозе дырэктывы "LogNamespace". Кожная прастора імёнаў логаў абслугоўваецца асобным фонавым працэсам са сваім наборам налад і лімітаў. Прапанаваная магчымасць можа апынуцца карыснай для балансавання нагрузкі пры вялікім аб'ёме логаў ці для ўзмацнення ізаляцыі прыкладанняў. У journalctl дададзена опцыя «—namespace», якая абмяжоўвае запыт толькі пазначанай прасторай імёнаў.
  • У systemd-udevd і іншыя кампаненты systemd дададзеная падтрымка механізму прызначэння альтэрнатыўных імёнаў сеткавым інтэрфейсам, які дазваляе адначасова ўжываць для аднаго інтэрфейсу адразу некалькі імёнаў. Памер імя можа дасягаць 128 сімвалаў (раней імя сеткавага інтэрфейсу было абмежавана 16 сімваламі). Па змаўчанні systemd-udevd зараз прызначае кожнаму сеткаваму інтэрфейсу ўсе варыянты імёнаў, генераваныя падтрымоўванымі схемамі наймення. Дадзеныя паводзіны можна змяніць у праз новыя налады AlternativeName і AlternativeNamesPolicy у файлах .link. У systemd-nspawn рэалізавана генерацыя альтэрнатыўных імёнаў з поўным імем кантэйнера для ствараных на баку хаста veth-лінкаў.
  • У API sd-event.h дададзена падтрымка падсістэмы ядра Linux "pidfd" для апрацоўкі сітуацыі з паўторным выкарыстаннем PID (pidfd звязваецца з пэўным працэсам і не змяняецца, у той час як PID можа быць прывязаны да іншага працэсу пасля завяршэння бягучага працэсу, асацыяванага з гэтым PID). Усе кампаненты systemd, за выключэннем PID 1, перакладзены на выкарыстанне pidfds, калі дадзеная падсістэма падтрымліваецца бягучым ядром.
  • У systemd-logind праз PolicyKit забяспечана праверка доступу да аперацыі змены віртуальнага тэрмінала. Па змаўчанні паўнамоцтвы на змену актыўнага тэрмінала даюцца толькі карыстальнікам, якія хоць адзін раз ініцыявалі сеанс на лакальным віртуальным тэрмінале.
  • Для спрашчэння стварэння выяў initrd з systemd, апрацоўшчык PID 1 зараз вызначае факт выкарыстання ў initrd і ў гэтым выпадку аўтаматычна загружае initrd.target замест default.target. Пры падобным падыходзе выявы initrd і асноўнай сістэмы могуць адрознівацца толькі наяўнасцю файла /etc/initrd-release.
  • Дададзены новы параметр каманднага радка ядра - "systemd.cpu_affinity", эквівалентны опцыі CPUAffinity у /etc/systemd/system.conf і які дазваляе наладзіць маску прывязкі да CPU для PID 1 і іншых працэсаў.
  • Забяспечана перазагрузка базы SELinux разам з перазапускам PID 1 праз каманды, падобныя "systemctl daemon-reload".
  • У апрацоўшчык PID 1 дададзена налада «systemd.show-status=error», пры ўсталёўцы якой на кансоль выводзяцца толькі паведамленні пра памылкі і істотныя затрымкі пры загрузцы.
  • У systemd-sysusers дададзена падтрымка стварэння карыстачоў з імем асноўнай групы, адрознай ад імя карыстача.
  • У systemd-growfs праз опцыю мантавання x-systemd.growfs у /etc/fstab рэалізаваная падтрымка пашырэння частак XFS у дадатак да раней падтрымоўванага пашырэння частак з Ext4 і Btrfs.
  • У /etc/crypttab дададзена опцыя x-initrd.attach для вызначэння шыфраванай часткі, ужо разблакаванага на стадыі initrd.
  • У systemd-cryptsetup дададзеная падтрымка (опцыя pkcs11-uri у /etc/crypttab) разблакіроўкі шыфраваных частак пры дапамозе смарткарт PKCS#11, напрыклад, для прымацавання шыфравання частак да бірульак YubiKeys.
  • У /etc/fstab дададзены новыя опцыі мантавання "x-systemd.required-by" і "x-systemd.wanted-by" для відавочнай налады unit-ов, вызначальных аперацыі мантавання, выкліканыя замест local-fs.target і remote-fs .target.
  • Дададзена новая опцыя sandbox-ізаляцыі сэрвісаў – ProtectClock, якая абмяжоўвае запіс у сістэмныя гадзіны (доступ блакуецца на ўзроўні /dev/rtc, сістэмных выклікаў і дазволаў CAP_SYS_TIME/CAP_WAKE_ALARM).
  • У спецыфікацыю Discoverable Partitions і systemd-gpt-auto-generator дададзена вызначэнне раздзелаў
    /var і /var/tmp.

  • У "systemctl list-unit-files" пры адлюстраванні спісу unit-ов з'явіўся новы слупок, які адлюстроўвае стан уключэння, прапанаванае ў перадналадах вытворцы для дадзенага тыпу unit-ов.
  • У "systemctl" дададзена опцыя "-with-dependencies", пры ўсталёўцы якой каманды тыпу "systemctl status" і "systemctl cat" будуць выводзіць не толькі ўсе адпаведныя unit-ы, але і unit-ы ад якіх яны залежаць.
  • У systemd-networkd у канфігурацыі qdisc дададзеная магчымасць налады параметраў TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management) і FQ (Fair Queue).
  • У systemd-networkd дададзена падтрымка сеткавых прылад IFB (Intermediate Functional Block).
  • У systemd-networkd у секцыі [Route] рэалізаваны параметр MultiPathRoute для налады multi-path маршрутаў.
  • У systemd-networkd для кліента DHCPv4 дададзена опцыя SendDecline, пры ўказанні якой пасля прыёму DHCP-адказу з адрасам выконваецца праверка дубліравання адраса і ў выпадку выяўлення канфлікту адрасоў выдадзены адрас адхіляецца. Для кліента DHCPv4 таксама дададзена опцыя RouteMTUBytes, якая дазваляе вызначыць памер MTU для маршрутаў, якія генерыруюцца з прывязак IP-адрасоў (leases).
  • Налада PrefixRoute у секцыі "[Address]" файлаў ".network" абвешчана састарэлай. На змену ёй прыйшла налада "AddPrefixRoute", якая мае зваротны сэнс.
  • У файлах.
  • У файлах .network у секцыі «[RoutingPolicyRule]» з'явіліся налады
    User і SuppressPrefixLength для задання маршрутызацыі ад крыніцы (source routing) на аснове дыяпазонаў UID і памеру прэфікса.

  • У networkctl у камандзе "status" забяспечана магчымасць адлюстравання логаў у прывязцы да кожнага сеткавага інтэрфейсу.
  • У systemd-networkd-wait-online дададзена падтрымка задання максімальнага часу чакання пераходу інтэрфейсу ў працоўны стан і чаканні знікнення інтэрфейсу.
  • Спынена апрацоўка файлаў .link і .network з пустой або закаментаванай секцыяй "[Match]".
  • У файлах .link і .network у секцыі «[Match]» з'явілася налада «PermanentMACAddress» для праверкі сталага MAC-адрасы прылад у выпадку выкарыстання згенераванага выпадковага MAC.
  • Секцыя "[TrafficControlQueueingDiscipline]" у файлах .network перайменавана ў "[NetworkEmulator]", а з назваў звязаных настроек прыбраны прэфікс "NetworkEmulator".
  • У systemd-resolved для DNS-over-TLS дададзена падтрымка праверкі SNI.

Крыніца: opennet.ru

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