Efter tre mÄnaders utveckling har releasen av systemhanteraren systemd 249 presenterats. Den nya versionen möjliggör specificering av anvÀndare/grupper i JSON-format, stabiliserar Journal-protokollet, förenklar hanteringen av skivpartitioner som byter plats med varandra, lÀgger till möjligheten att koppla BPF-program till tjÀnster, implementerar mapping av anvÀndar-ID i monterade partitioner och erbjuder en större mÀngd nya nÀtverksinstÀllningar och möjligheter för att köra containrar.
Huvudsakliga förÀndringar:
- Journal-protokollet har dokumenterats och kan anvÀndas i klienter istÀllet för syslog-protokollet för lokal leverans av loggar. Journal-protokollet har funnits ganska lÀnge och anvÀnds redan i vissa klientbibliotek, ÀndÄ har dess officiella stöd först nu annonserats.
- I userdb och nss-systemd sÀkerstÀlls lÀsning av extra anvÀndardefinitioner som finns i katalogerna /etc/userdb/, /run/userdb/, /run/host/userdb/ och /usr/lib/userdb/, angivna i JSON-format. Det noteras att denna möjlighet kommer att tillhandahÄlla en extra mekanism för att skapa anvÀndare i systemet, vilket ger full integrering med NSS och /etc/shadow. Stödet för JSON-formatet för anvÀndar-/gruppposter kommer ocksÄ att möjliggöra koppling av olika resurskontrollparametrar och andra instÀllningar som kÀnns igen av pam_systemd och systemd-logind.
- I nss-systemd sÀkerstÀlls syntesen av anvÀndar-/gruppposter i /etc/shadow med hjÀlp av hashade lösenord frÄn systemd-homed.
- En mekanism har implementerats som förenklar organiseringen av uppdateringar genom anvĂ€ndning av skivpartitioner som byter plats med varandra (en partition Ă€r aktiv, medan en annan Ă€r reserv â uppdateringen kopieras till den reserverade partitionen, som sedan blir aktiv). Om bildfilen innehĂ„ller tvĂ„ rot- eller /usr-partitioner, och udev inte har identifierat nĂ€rvaron av parametern 'root=' eller hanterar bildfiler angivna via alternativet "--image" i verktygen systemd-nspawn och systemd-dissect, kan den partition som ska anvĂ€ndas för boot berĂ€knas genom att jĂ€mföra GPT-etiketter (det underförstĂ„s att GPT-etiketten nĂ€mner versionsnumret för innehĂ„llet i partitionen och systemd kommer att vĂ€lja den partition med de nyaste Ă€ndringarna).
- I filerna för tjÀnster har en instÀllning för BPFProgram lagts till, vilket möjliggör laddning av BPF-program i kÀrnan och hantering av dem i samband med specifika systemd-tjÀnster.
- I systemd-fstab-generator och systemd-repart har möjligheten att ladda frÄn diskar lagts till dÀr det endast finns en /usr-partition och ingen rotnivÄ-partition (rotnivÄ-partitionen kommer att genereras av verktyget systemd-repart vid första uppstarten).
- I systemd-nspawn har alternativet "âprivate-user-chown" ersatts med en mer universell variant "âprivate-user-ownership", som kan acceptera vĂ€rdena "chown" som motsvarighet till "âprivate-user-chown", "off" för att stĂ€nga av den gamla instĂ€llningen, "map" för mappning av anvĂ€ndaridentifierare i monterade filsystem och "auto" för att vĂ€lja "map" vid tillgĂ„ng till den nödvĂ€ndiga funktionaliteten i kĂ€rnan (5.12+) eller falla tillbaka pĂ„ rekursiv anrop av "chown" i annat fall. Genom mappning kan man koppla filer av en anvĂ€ndare pĂ„ ett monterat frĂ€mmande partition till en annan anvĂ€ndare i det aktuella systemet, vilket möjliggör enklare delning av filer mellan olika anvĂ€ndare. I mekanismen för flyttbara hemkataloger systemd-homed möjliggör mappning för anvĂ€ndare att flytta sina hemkataloger till externa lagringsenheter och anvĂ€nda dem pĂ„ olika datorer dĂ€r anvĂ€ndaridentifierare kan skilja sig.
- I systemd-nspawn kan alternativet "âprivate-user" nu anvĂ€nda vĂ€rdet "identity" för direkt Ă„terspegling av anvĂ€ndaridentifierare vid konfiguration av namnrymden (user namespace), det vill sĂ€ga UID 0 och UID 1 i containern kommer att Ă„terspeglas som UID 0 och UID 1 pĂ„ vĂ€rdsidan, för att minska attackvektorer (containern fĂ„r processens rĂ€ttigheter endast i sin egen namnrymd).
- I systemd-nspawn har alternativet "âbind-user" lagts till för att vidarebefordra en anvĂ€ndarpost i containern som finns i vĂ€rdmiljön (hemkatalogen monteras i containern, en post för anvĂ€ndare/grupp lĂ€ggs till och UID mappas mellan containern och vĂ€rdmiljön).
- I systemd-ask-password och systemd-sysusers har stöd lagts till för att begÀra installerade lösenord (passwd.hashed-password.<user> och passwd.plaintext-password.<user>) med hjÀlp av den nya mekanismen för sÀker överföring av kÀnslig data som introducerades i systemd 247, vilken anvÀnder mellanliggande filer i en separat katalog. Som standard accepteras referenser frÄn processen med PID1, som till exempel fÄr dem frÄn en containerhanterare, vilket möjliggör konfiguration av anvÀndarens lösenord vid första uppstarten.
- I systemd-firstboot har stöd lagts till för att anvÀnda mekanismen för sÀker överföring av kÀnslig information för att begÀra olika systemparametrar, vilket kan anvÀndas för att initiera systeminstÀllningar vid första uppstarten av en containerbild som saknar nödvÀndiga instÀllningar i katalogen /etc.
- I processen med PID 1 under uppstarten visas bÄde namnet och beskrivningen av enheten samtidigt. Utmatningen kan Àndras via parametern "StatusUnitFormat=combined" i system.conf eller genom kÀrnkonsolens kommandoradsalternativ "systemd.status-unit-format=combined".
- Verktygen systemd-machine-id-setup och systemd-repart har fĂ„tt alternativet "âimage" för att överföra en fil med maskinens identifierare till diskbilder eller för att öka storleken pĂ„ diskbilden.
- I konfigurationsfilen för partitioner som anvÀnds av verktyget systemd-repart har parametern MakeDirectories lagts till, vilken kan anvÀndas för att skapa godtyckliga kataloger i det skapade filsystemet innan det Äterspeglas i partitionstabellen (till exempel för att skapa kataloger för monteringspunkter i rotpartitionen, sÄ att partitionen kan monteras i skrivskyddat lÀge direkt). För att hantera GPT-flaggor i de skapade partitionerna har motsvarande parametrar Flags, ReadOnly och NoAuto lagts till. I parametern CopyBlocks har vÀrdet "auto" implementerats för att automatiskt vÀlja den aktuella startpartitionen som kÀlla vid kopiering av block (till exempel nÀr man behöver flytta sin egen rotpartition till en ny enhet).
- I GPT har flaggan "grow-file-system" implementerats, vilket Àr liknande x-systemd.growfs-monteringsalternativet och möjliggör automatisk utvidgning av filsystemets storlek upp till grÀnserna för blockenheten, om filsystemets storlek Àr mindre Àn partitionen. Flaggan Àr tillÀmplig pÄ Ext3-, XFS- och Btrfs-filsystem och kan anvÀndas med automatiskt identifierade partitioner. Som standard Àr flaggan aktiverad för skrivbara partitioner som automatiskt skapas via systemd-repart. För att konfigurera flaggan i systemd-repart har alternativet GrowFileSystem lagts till.
- I filen /etc/os-release har stöd för nya variabler IMAGE_VERSION och IMAGE_ID implementerats för att definiera versionen och identifieraren för atomÀrt uppdaterade bilder. Specifikatorerna %M och %A föreslÄs för att infoga angivna vÀrden i olika kommandon.
- Parametern "--extension" har lagts till i verktyget portablectl för att aktivera bÀrbara systemavbildningar (till exempel kan dessa anvÀndas för att distribuera bilder med ytterligare tjÀnster som integreras i root-partitionen).
- I verktyget systemd-coredump har extraktion av ELF-informationen build-id sÀkerstÀllts vid skapandet av core-dump av en process, vilket kan vara anvÀndbart för att bestÀmma vilket paket den kraschade processen tillhör, om namn- och versionsinformationen för deb- eller rpm-paket har inbÀddats i ELF-filer.
- En ny enhetsdatabas för FireWire-enheter (IEEE 1394) har lagts till i udev.
- Tre Àndringar som bryter bakÄtkompatibiliteten har lagts till i udev:s namnvalschema för nÀtverksgrÀnssnitt "net_id": ogiltiga tecken i grÀnssnittsnamn ersÀtts nu med "_"; namnen pÄ PCI hotplug-plats för s390-system behandlas som hexadecimala siffror; anvÀndning av upp till 65535 inbyggda PCI-enheter tillÄts (tidigare blockerades nummer över 16383).
- I systemd-resolved har domÀnen "home.arpa" lagts till i listan över NTA (Negative Trust Anchors), rekommenderad för lokala hemnÀtverk, men inte anvÀnd i DNSSEC.
- I parametern CPUAffinity har specifikatorerna "%" tolkats.
- Parametern ManageForeignRoutingPolicyRules har lagts till i ".network"-filer, vilket kan anvÀndas för att utesluta hantering av externa routingpolicyer i systemd-networkd.
- Parametern RequiredFamilyForOnline har lagts till i ".network"-filer för att bestÀmma nÀrvaro av en IPv4- eller IPv6-adress som en indikation pÄ att nÀtverksgrÀnssnittet Àr i tillstÄndet "online". I networkctl har visningen av tillstÄndet "online" sÀkerstÀllts för varje lÀnk.
- I filerna ".network" har parametern OutgoingInterface lagts till för att definiera utgÄende grÀnssnitt vid konfiguration av nÀtverksbroar.
- I filerna ".network" har parametern Group lagts till, vilket gör det möjligt att konfigurera en Multipath-grupp för poster i sektionen "[NextHop]".
- I systemd-network-wait-online har alternativen "-4" och "-6" lagts till för att begrÀnsa vÀntan pÄ anslutning endast till IPv4 eller IPv6.
- I DHCP-serverns instÀllningar har parametern RelayTarget lagts till, vilket sÀtter servern i DHCP Relay-lÀget. För ytterligare konfiguration av DHCP-relÀet föreslÄs alternativen RelayAgentCircuitId och RelayAgentRemoteId.
- I DHCP-servern har parametern ServerAddress lagts till, vilket gör det möjligt att uttryckligen stÀlla in IP-adressen för servern (annars vÀljs adressen automatiskt).
- I DHCP-servern har sektionen [DHCPServerStaticLease] implementerats, vilket möjliggör konfiguration av statiska adresstilldelningar (DHCP leases) genom att ange fasta IP-bindningar till MAC-adresser och vice versa.
- I instÀllningen RestrictAddressFamilies har stöd för vÀrdet "none" implementerats, vilket innebÀr att tjÀnsten inte kommer att ha tillgÄng till sockets frÄn nÄgot adressfamilj.
- I filerna ".network" i sektionerna [Address], [DHCPv6PrefixDelegation] och [IPv6Prefix] har stöd för att konfigurera RouteMetric införts, vilket gör det möjligt att ange en metrisk för prefikset som skapas för den angivna adressen.
- I nss-myhostname och systemd-resolved har syntes av DNS-poster med adresser för vÀrdar med det speciella namnet "_outbound" sÀkerstÀllts, för vilka alltid en lokal IP ges, vald i enlighet med de standardrutter som anvÀnds för utgÄende anslutningar.
- I filerna .network har en aktiv standardinstÀllning för RoutesToNTP lagts till i sektionen "[DHCPv4]", vilket föreskriver att en separat rutt ska lÀggas till genom det aktuella nÀtverksgrÀnssnittet för Ätkomst till NTP-serverns adress, erhÄllen för detta grÀnssnitt genom DHCP (pÄ samma sÀtt som DNS-instÀllningen möjliggör att sÀkerstÀlla att trafiken till NTP-servern dirigeras genom det grÀnssnitt dÀr denna adress har erhÄllits).
- InstÀllningarna SocketBindAllow och SocketBindDeny har lagts till för att hantera Ätkomsten till sockets som Àr bundna till den aktuella tjÀnsten.
- För enhetsfiler har en villkorlig instÀllning ConditionFirmware implementerats, vilket möjliggör att skapa kontroller som bedömer firmware-funktioner, sÄsom funktion pÄ UEFI-system och device.tree, samt kontrollera kompatibiliteten med vissa egenskaper hos device-tree.
- Alternativ för ConditionOSRelease har implementerats för att kontrollera fÀlten i filen /etc/os-release. Vid bestÀmning av villkoren för att kontrollera fÀltvÀrden Àr operatorer som "=", "!=", "<", "=" och ">" tillÄtna.
- I verktyget hostnamectl har kommandon av typen "get-xyz" och "set-xyz" tagits bort prefikserna "get" och "set", till exempel kan kommandot "hostnamectl get-hostname" och "hostnamectl set-hostname" nu skrivas som "hostnamectl hostname", dÀr vÀrdesÀttningen bestÀms genom att ange ett ytterligare argument ("hostnamectl hostname value"). Stödet för de gamla kommandona har bevarats för kompatibilitet.
- I verktyget systemd-detect-virt och instÀllningen ConditionVirtualization sÀkerstÀlls korrekt identifiering av Amazon EC2-miljöer.
- InstÀllningen LogLevelMax i unit-filer tillÀmpas nu inte bara pÄ loggmeddelanden som skapas av tjÀnsten, utan ocksÄ pÄ meddelanden frÄn process PID 1 som nÀmner tjÀnsten.
- Möjlighet att inkludera SBAT-data (UEFI Secure Boot Advanced Targeting) i systemd-boot EFI PE-filer har tillhandahÄllits.
- I /etc/crypttab har nya alternativ "headless" och "password-echo" implementerats â det första gör att alla operationer som rör interaktiva lösenords- och PIN-frĂ„gor kan hoppas över, medan det andra möjliggör instĂ€llning av hur lösenordsinmatningen visas (inga tecken, visa tecknen successivt och visa stjĂ€rnor). I systemd-ask-password har alternativet "--echo" lagts till för liknande syften.
- I systemd-cryptenroll, systemd-cryptsetup och systemd-homed har stödet för upplÄsning av LUKS2-krypterade partitioner med FIDO2-token utvidgats. Nya alternativ "--fido2-with-user-presence", "--fido2-with-user-verification" och "--fido2-with-client-pin" har lagts till för att hantera kontroll av anvÀndarens fysiska nÀrvaro, verifiering och behovet av att ange en PIN-kod.
- I systemd-journal-gatewayd har alternativen "--user", "--system", "--merge" och "--file" lagts till, liknande de samma alternativen i journalctl.
- Förutom direkta beroenden mellan enheter, som definieras genom parametrarna OnFailure och Slice, har stöd för implicita omvÀnda beroenden OnFailureOf och SliceOf lagts till, vilka kan vara anvÀndbara, till exempel för att definiera alla enheter som ingÄr i en slice.
- Nya typer av beroenden mellan enheter har lagts till: OnSuccess och OnSuccessOf (motsatsen till OnFailure, som aktiveras vid framgÄngsrik avslutning); PropagatesStopTo och StopPropagatedFrom (möjliggör spridning av stopp hÀndelse frÄn en enhet till en annan); Upholds och UpheldBy (ett alternativ till Restart).
- I verktyget systemd-ask-password har alternativet «âemoji» lagts till för att styra visningen av lĂ„ssymbolen (đ) i lösenordsinmatningsfĂ€ltet.
- Dokumentation om strukturen av kÀlltexttrÀden för systemd har lagts till.
- För enheterna har egenskapen MemoryAvailable lagts till, som visar hur mycket minne som ÄterstÄr för enheten innan den nÄr grÀnsen som stÀllts in via parametrarna MemoryMax, MemoryHigh eller MemoryAvailable.
KĂ€lla: opennet.ru
