Efter tvÄ mÄnaders utveckling har versionen 242 av systemcheferna systemd presenterats. Bland nyheterna mÀrks stöd för L2TP-tunnlar, möjligheten att styra systemd-logind:s beteende vid omstart genom miljövariabler, stöd för utökade boot-partitioner XBOOTLDR för montering av /boot, möjlighet att starta med rotpartitionen i overlayfs, samt ett stort antal nya instÀllningar för olika typer av enheter.
Huvudsakliga förÀndringar:
- Stöd för L2TP-tunnlar har införts i systemd-networkd;
- I sd-boot och bootctl har stöd för XBOOTLDR-partitioner (Extended Boot Loader) genomförts, avsedda för montering i /boot, utöver ESP-partitioner som monteras i /efi eller /boot/efi. KÀrnor, instÀllningar, initrd-bilder och EFI kan nu laddas bÄde frÄn ESP-partitioner och XBOOTLDR-partitioner. Denna Àndring gör det möjligt att anvÀnda bootloadern sd-boot i mer konservativa scenarier dÀr sjÀlva bootloadern ligger i ESP, medan de laddade kÀrnorna och relaterad metadata flyttas till en separat partition.
- Möjligheten att starta med alternativet "systemd.volatile=overlay" har lagts till, vilket möjliggör att placera rotpartitionen i overlayfs och organisera arbetet ovanför en endast lĂ€sbar rotkatalog med registrering av Ă€ndringar i en separat katalog i tmpfs (Ă€ndringar i denna konfiguration gĂ„r förlorade efter omstart). PĂ„ liknande sĂ€tt har optionen "âvolatile=overlay" lagts till i systemd-nspawn för att anvĂ€nda liknande funktionalitet i containrar;
- I systemd-nspawn har optionen "âoci-bundle" lagts till, vilket möjliggör anvĂ€ndning av runtime-paket för att sĂ€kerstĂ€lla isolerad körning av containrar som uppfyller kraven i Open Container Initiative (OCI). Stöd för olika alternativ beskrivna i OCI-specifikationen har föreslagits för anvĂ€ndning pĂ„ kommandoraden och nspawn-enheterna, exempelvis för att utesluta delar av filsystemet kan instĂ€llningar som "âinaccessible" och "Inaccessible" anvĂ€ndas, och för att konfigurera standardutmatningsströmmer har alternativ som "âconsole" och "âpipe" lagts till;
- Möjligheten att styra systemd-logind:s beteende genom miljövariabler har lagts till: $SYSTEMD_REBOOT_TO_FIRMWARE_SETUP,
$SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU och
$SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Med hjÀlp av dessa variabler kan egna omstartshanterare kopplas samman (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu och
/run/systemd/reboot-to-boot-loader-entry) ОлО ĐČĐŸĐŸĐ±ŃĐ” ĐŸŃĐșĐ»ŃŃĐžŃŃ ĐžŃ (ĐżŃĐž ĐČŃŃŃаĐČĐ»Đ”ĐœĐžĐž Đ·ĐœĐ°ŃĐ”ĐœĐžŃ ĐČ false); - Till kommandot "systemctl reboot" har alternativet "âboot-load-menu=" lagts till.
«âboot-loader-entry=», som gör det möjligt att vĂ€lja ett specifikt alternativ i startmenyn eller en startlĂ€ge efter omstart; - Ett nytt sandbox-isoleringskommando «RestrictSUIDSGID=» har lagts till, som anvĂ€nder seccomp för att förhindra skapande av filer med SUID/SGID-flaggor;
- StandardinstÀllningarna för begrÀnsningar «NoNewPrivileges» och «RestrictSUIDSGID» tillÀmpas nu i tjÀnster med aktiverat lÀge för dynamisk generering av anvÀndaridentifierare («DynamicUser»);
- Den standardinstÀllning för MACAddressPolicy=persistent som anvÀnds i .link-filer har Àndrats för att omfatta fler enheter. GrÀnssnitten för nÀtverksbroar, tunnlar (tun, tap) och aggregerade lÀnkar (bond) identifierar sig sjÀlva endast med namnet pÄ nÀtverksgrÀnssnittet, sÄ detta namn anvÀnds nu som grund för att binda MAC- och IPv4-adresser. Dessutom har instÀllningen «MACAddressPolicy=random» lagts till, som kan anvÀndas för att binda MAC- och IPv4-adresser till enheter i slumpmÀssig ordning;
- De .device enhetsfiler som genereras av systemd-fstab-generator inkluderar nu inte motsvarande .mount enheter som beroenden i sektionen «Wants=». En enkel anslutning av en enhet leder nu inte till automatiskt startande av en monteringsenhet, men sÄdana enheter kan fortfarande startas av andra skÀl, exempelvis som en del av local-fs.target eller som ett beroende av andra enheter som Àr beroende av local-fs.target;
- Stödet för masker («*» och sÄ vidare) har lagts till i kommandona «networkctl list/status/lldp» för att filtrera specifika grupper av nÀtverksgrÀnssnitt baserat pÄ deras namn;
- MiljövÀrdet $PIDFILE stÀlls nu in med en absolut sökvÀg, som konfigureras i tjÀnster via parametern «PIDFile=;
- Det har lagts till offentliga DNS-servrar i antalet reserverade DNS-servrar som anvÀnds om en primÀr DNS inte uttryckligen definieras, servrar Cloudflare (1.1.1.1). För att ÄsidosÀtta listan över reserverade DNS-servrar kan alternativet «-Ddns-servers=» anvÀndas;
- Vid upptÀckten av en USB-enhetskontroller (USB Device Controller) sÀkerstÀlls automatisk start av den nya hanteraren usb-gadget.target (nÀr systemet körs pÄ en USB-enhet);
- För enhetsfiler har instÀllningen «CPUQuotaPeriodSec=» implementerats, vilket definierar tidsperioden inom vilken kvoten för CPU-tid mÀts, angiven via instÀllningen «CPUQuota=»;
- För enhetsfiler har instÀllningen «ProtectHostname=» implementerats, vilket förhindrar tjÀnster frÄn att Àndra information om vÀrdnamnet, Àven med tillgÀngliga befogenheter;
- För enhetsfiler har instÀllningen «NetworkNamespacePath=» implementerats, vilket möjliggör koppling av namnrymder till tjÀnster eller socket-enheter genom att ange sökvÀgen till namnrymdens fil i den pseudofilsystemet /proc;
- Möjlighet att stÀnga av substitution av miljövariabler för processer som startas med instÀllningen «ExecStart=» har lagts till, genom att lÀgga till tecknet «:» före startkommandot;
- Nya flaggor «OnClockChange=» och
«OnTimezoneChange=» har föreslagits för timers (enheter .timer), vilket möjliggör hantering av anrop av enheten vid Àndring av systemtid eller tidszon; - Nya instÀllningar «ConditionMemory=» och «ConditionCPUs=» har lagts till, vilka definierar villkor för anrop av enheten beroende pÄ minnesstorlek och antal CPU-kÀrnor (till exempel kan resurskrÀvande tjÀnster startas endast om det finns tillrÀckligt med RAM);
- En ny enhet time-set.target har lagts till, som tar emot det lokalt instÀllda systemtiden utan att anvÀnda synkronisering med externa tidssynkserverar genom enheten time-sync.target. Den nya enheten kan anvÀndas av tjÀnster som bara behöver noggrannhet frÄn osynkroniserade lokala klockor;
- I «systemctl start» och liknande kommandon har en valmöjlighet «âshow-transaction» lagts till, som visar en sammanfattning av alla operationer som har lagts till i köer pĂ„ grund av den begĂ€rda Ă„tgĂ€rden;
- I systemd-networkd har en ny status âenslavedâ implementerats, som anvĂ€nds istĂ€llet för âdegradedâ eller âcarrierâ för nĂ€tverksgrĂ€nssnitt som ingĂ„r i aggregerade lĂ€nkar eller nĂ€tverksbryggor. För primĂ€ra grĂ€nssnitt har ett tillstĂ„nd âdegraded-carrierâ lagts till vid problem med en av de aggregerade lĂ€nkarna;
- I enheterna .network har optionen «IgnoreCarrierLoss=» lagts till för att bevara nÀtverksinstÀllningar vid sambandssvikt;
- Genom instÀllningen «RequiredForOnline=» i enheterna .network gÄr det nu att ange det minimala accepterade tillstÄndet för lÀnken som krÀvs för att föra nÀtverksgrÀnssnittet till «online» och aktivera systemd-networkd-wait-online-handlaren;
- I systemd-networkd-wait-online har en option «âany» lagts till för att vĂ€nta pĂ„ att vilket som helst av de angivna nĂ€tverksgrĂ€nssnitten ska vara redo istĂ€llet för alla, samt optionen «âoperational-state=» för att definiera lĂ€nktillstĂ„ndet som indikerar beredskap;
- I .network-enheterna har instÀllningarna «UseAutonomousPrefix=» och «UseOnLinkPrefix=» lagts till, vilka kan anvÀndas för att ignorera prefix nÀr man tar emot
annonser frÄn IPv6-router (RA, Router Advertisement); - I .network-enheterna har instÀllningarna «MulticastFlood=», «NeighborSuppression=» och «Learning=» lagts till för att Àndra parametrarna för nÀtverksbroar, samt instÀllningen «TripleSampling=» för att Àndra TRIPLE-SAMPLING-lÀget för virtuella CAN-grÀnssnitt;
- I .netdev-enheterna har instÀllningarna «PrivateKeyFile=» och «PresharedKeyFile=» lagts till, med hjÀlp av vilka man kan ange privata och delade (PSK) nycklar för WireGuard-grÀnssnitt; VPN;
- I /etc/crypttab har alternativen same-cpu-crypt och submit-from-crypt-cpus lagts till, som styr schemalÀggarens beteende vid migrering mellan CPU-kÀrnor för arbete relaterat till kryptering;
- I systemd-tmpfiles har hantering av lÄsfilen sÀkerstÀllts innan operationer i kataloger med temporÀra filer utförs, vilket gör att man kan stÀnga av rensningen av förÄldrade filer under en specifik ÄtgÀrd (till exempel nÀr man packar upp ett tar-arkiv i /tmp kan mycket gamla filer dyka upp, vilka inte kan tas bort förrÀn ÄtgÀrden med dem avslutas);
- I kommandot «systemd-analyze cat-config» har möjligheten till analys av konfigurationer som sprids över flera filer sÀkerstÀllts, till exempel anvÀndar- och systeminstÀllningar, innehÄllet i tmpfiles.d och sysusers.d, regler för udev, och sÄ vidare.
- I «journalctl» har alternativet «âcursor-file=» lagts till för att definiera en fil för att ladda och spara positionpekaren;
- I systemd-detect-virt har identifieringen av hypervisorn ACRN och WSL-subsystemet (Windows Subsystem for Linux) lagts till för efterföljande förgreningar med hjÀlp av villkorsoperatorn «ConditionVirtualization»;
- Under installationen av systemd (vid körning av «ninja install») har skapandet av symboliska lÀnkar till filerna systemd-networkd.service, systemd-networkd.socket stoppats i katalogen /etc,
systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
systemd-networkd-wait-online.service och systemd-timesyncd.service. För att skapa dessa filer mÄste nu kommandot «systemctl preset-all» köras.
KĂ€lla: opennet.ru
