Release of system manager systemd 249

Efter tre måneders udvikling præsenteres udgivelsen af system manageren systemd 249. I denne version er der sikret mulighed for at definere brugere/grupper i JSON-format, stabiliseret Journal-protokollen, forenklet organiseringen af skiftende diskpartitioner, tilføjet mulighed for at knytte BPF-programmer til tjenester, implementeret mapping af bruger-id'er i monterede partitioner, og der er foreslået en stor mængde nye netværksindstillinger samt muligheder for at køre containere.

Vigtige ændringer:

  • Journal-protokollen er dokumenteret, og den kan bruges i klienter i stedet for syslog-protokollen til lokal levering af logoptegnelser. Journal-protokollen er blevet implementeret for relativt lang tid siden og anvendes allerede i nogle klientbiblioteker, men dens officielle support er først nu blevet erklæret.
  • I userdb og nss-systemd er der sikret læsning af yderligere brugerdefinitioner placeret i mapperne /etc/userdb/, /run/userdb/, /run/host/userdb/ og /usr/lib/userdb/, specificeret i JSON-format. Det bemærkes, at denne mulighed vil give et ekstra mekanisme til at oprette brugere i systemet, hvilket sikrer fuld integration med NSS og /etc/shadow. Understøttelse af JSON-formatet for bruger/grupperegistreringer vil også gøre det muligt at knytte forskellige ressourceadministrationsparametre og andre indstillinger til brugerne, som genkendes af pam_systemd og systemd-logind.
  • I nss-systemd sikres syntese af bruger/grupperegistreringer i /etc/shadow ved brug af hashede adgangskoder fra systemd-homed.
  • Der er implementeret en mekanisme, der forenkler opdateringsprocessen ved brug af skiftende diskpartitioner (en aktiv partition, mens den anden er backup - opdateringen kopieres til backup-partitionen, hvorefter den bliver aktiv). Hvis diskbilledet indeholder to rodbaserede eller /usr-partitioner, og udev ikke har identificeret tilstedeværelsen af parametret 'root=' eller udfører behandling af diskbilleder, der er angivet via optionen "--image" i værktøjerne systemd-nspawn og systemd-dissect, kan partitionen til indlæsning beregnes ved at sammenligne GPT-tags (det antages, at versionen af partitionens indhold er nævnt i GPT-taggen, og systemd vil vælge den partition med de nyeste ændringer).
  • I servicefilerne er der tilføjet en BPFProgram-konfiguration, som gør det muligt at indlæse BPF-programmer i kernen og styre dem i forhold til bestemte systemd-tjenester.
  • systemd-fstab-generator og systemd-repart har fået mulighed for at starte fra diske, der kun har en /usr-partition uden nogen rodpartition (rodpartitionen vil blive genereret af systemd-repart-værktøjet ved den første opstart).
  • I systemd-nspawn er indstillingen '—private-user-chown' blevet erstattet af en mere universel variant '—private-user-ownership', som kan tage værdierne 'chown' som ækvivalent til '—private-user-chown', 'off' for at deaktivere den gamle indstilling, 'map' til at kortlægge bruger-id'er i monterede filsystemer, og 'auto' for at vælge 'map', hvis den nødvendige funktionalitet er tilgængelig i kernen (5.12+) eller falde tilbage til rekursiv 'chown' i modsat fald. Ved hjælp af kortlægning kan filer fra én bruger på en monteret ikke-ejers partition kortlægges til en anden bruger i det aktuelle system, hvilket letter fildeling mellem forskellige brugere. I systemd-homed-mekanismen for bærbare hjemmebiblioteker vil kortlægning gøre det muligt for brugere at flytte deres hjemmebiblioteker til eksterne lagermedier og bruge dem på forskellige computere, hvis bruger-id'erne ikke stemmer overens.
  • I systemd-nspawn kan værdien 'identity' nu anvendes til indstillingen '—private-user' for direkte spejling af bruger-id'er ved opsætning af brugerrum (user namespace), dvs. at UID 0 og UID 1 i containeren vil blive spejlet til UID 0 og UID 1 på værtsiden, hvilket reducerer angrebsvektorer (containeren vil kun få processens rettigheder i sit eget brugerrum).
  • I systemd-nspawn er der tilføjet en '—bind-user'-indstilling for at viderebringe brugerens konto fra værtsmiljøet til containeren (hvor brugerens hjemmemappe monteres, der tilføjes en bruger-/gruppepost, og UID'en kortlægges mellem containeren og værtsmiljøet).
  • I systemd-ask-password og systemd-sysusers er der tilføjet støtte til at anmode om indtastning af brugerdefinerede adgangskoder (passwd.hashed-password. og passwd.plaintext-password.) ved hjælp af den nye mekanisme til sikker overførsel af fortrolige data, der blev introduceret i systemd version 247, som anvender midlertidige filer i et separat katalog. Som standard modtages legitimationsoplysninger fra processen med PID1, som f.eks. kan få dem fra containeradministratoren, hvilket muliggør konfiguration af brugeradgangskoden ved første opstart.
  • I systemd-firstboot er der tilføjet støtte til at bruge mekanismen til sikker overførsel af fortrolige data til anmodning om forskellige systemparametre, hvilket kan anvendes til at initialisere systemindstillinger ved første opstart af en containerafbildning, der ikke har de nødvendige indstillinger i kataloget /etc.
  • Under proces PID 1 under opstart vises både navnet og beskrivelsen af enheden samtidig. Output kan ændres ved at bruge parameteren 'StatusUnitFormat=combined' i system.conf eller ved at tilføje kernelkommandoen 'systemd.status-unit-format=combined'.
  • I værktøjerne systemd-machine-id-setup og systemd-repart er der tilføjet en mulighed '-—image' til at overføre en fil med maskinens identifikator til diskbilledet eller til at øge størrelsen på diskbilledet.
  • I konfigurationsfilen for partitioner, der bruges af værktøjet systemd-repart, er der tilføjet parameteren MakeDirectories, som kan bruges til at oprette vilkårlige kataloger i det oprettede filsysten på et tidspunkt før de registreres i partitionstabellen (f.eks. til at oprette kataloger i roden for monteringspunkter, så partitionen straks kan monteres i skrivebeskyttet tilstand). For at styre GPT-flaggene i de oprettede partitioner er de relevante parametre Flags, ReadOnly og NoAuto blevet tilføjet. I parameteren CopyBlocks er der implementeret værdien 'auto' for automatisk at vælge den nuværende opstartpartition som kilde ved kopiering af blokke (f.eks. når det er nødvendigt at flytte den egen root-partition til et nyt medie).
  • I GPT er flaget „grow-file-system” implementeret, som svarer til indstillingen x-systemd.growfs og sikrer automatisk udvidelse af filsystemets størrelse op til grænserne for blokenheden, hvis filsystemets størrelse er mindre end partitionen. Flaget er anvendeligt for Ext3, XFS og Btrfs filsystemer og kan anvendes på automatisk identificerede partitioner. Flaget aktiveres som standard for skrivbare partitioner, der automatisk oprettes via systemd-repart. For at indstille flaget er muligheden GrowFileSystem tilføjet i systemd-repart.
  • I filen /etc/os-release er der implementeret support for de nye variabler IMAGE_VERSION og IMAGE_ID til bestemmelse af versionen og identifikatoren for atomisk opdaterede billeder. For at indsætte disse værdier i forskellige kommandoer er der foreslået specifikatorer %M og %A.
  • Der er tilføjet parameteren „—extension” til værktøjet portablectl for at aktivere overførbare billeder af systemudvidelsen (f.eks. kan de bruges til at distribuere billeder med ekstra tjenester, der integreres i rodpartitionen).
  • I værktøjet systemd-coredump er der sikret udtrækning af ELF-informationen build-id ved oprettelsen af en core-dump for processen, hvilket kan være nyttigt til at bestemme, hvilken pakke den fejlslagne proces tilhører, hvis information om navn og version af deb- eller rpm-pakker er indlejret i ELF-filerne.
  • I udev er der tilføjet en ny hardwaredatabase for FireWire-enheder (IEEE 1394).
  • I udev er der til schemaet for valg af navne til netværksinterfaces „net_id” tilføjet tre ændringer, der bryder bagudkompatibiliteten: ugyldige tegn i interfaces navne erstattes nu med „_”; navne på PCI hotplug slots for s390-systemer behandles i form af hexadecimale tal; det er tilladt at bruge op til 65535 indbyggede PCI-enheder (tidligere blev numre over 16383 blokeret).
  • I systemd-resolved er domænet „home.arpa” tilføjet til listen over NTA (Negative Trust Anchors), hvilket anbefales til lokale hjemmenetværk, men ikke anvendes i DNSSEC.
  • I parameteren CPUAffinity er der sikret parsing af specifikatorer „%”.
  • I filerne „.network” er parameteren ManageForeignRoutingPolicyRules tilføjet, som kan bruges til at undtage behandling af tredjeparts routingpolitikker i systemd-networkd.
  • I filerne „.network” er parameteren RequiredFamilyForOnline tilføjet til bestemmelse af tilstedeværelsen af en IPv4- eller IPv6-adresse som et tegn på, at netværksinterfacet er i tilstanden „online”. I networkctl er statusen „online” sikret vist for hver forbindelse.
  • I filerne «.network» er parameteren OutgoingInterface tilføjet for at definere udgående grænseflader ved konfiguration af netværksbroer.
  • I filerne «.network» er parameteren Group tilføjet, som giver mulighed for at konfigurere en Multipath-gruppe for posterne i sektionen «[NextHop]».
  • I systemd-network-wait-online er mulighederne «-4» og «-6» tilføjet for at begrænse ventetiden for forbindelse kun til IPv4 eller IPv6.
  • I indstillingerne for DHCP-serveren er parameteren RelayTarget tilføjet, hvilket sætter serveren i DHCP Relay-tilstand. Til yderligere konfiguration af DHCP-relay er mulighederne RelayAgentCircuitId og RelayAgentRemoteId foreslået.
  • I DHCP-serveren er parameteren ServerAddress tilføjet, som giver mulighed for at angive IP-adressen for serveren eksplicit (ellers vælges adressen automatisk).
  • I DHCP-serveren er sektionen [DHCPServerStaticLease] implementeret, hvilket muliggør konfiguration af statiske adressebindinger (DHCP leases) ved at angive bindinger af faste IP-adresser til MAC-adresser og omvendt.
  • I konfigurationen RestrictAddressFamilies er support for værdien «none» implementeret, som angiver, at tjenesten ikke vil have adgang til sockets af nogen adressefamilier.
  • I filerne «.network» i sektionerne [Address], [DHCPv6PrefixDelegation] og [IPv6Prefix] er support for konfiguration af RouteMetric implementeret, hvilket gør det muligt at angive metrik for den rutepræfiks, der er oprettet for den angivne adresse.
  • I nss-myhostname og systemd-resolved er syntesen af DNS-poster med adresser til værter med det specielle navn «_outbound» sikret, hvor der altid returneres en lokal IP, valgt i overensstemmelse med de standardruter, der anvendes til udgående forbindelser.
  • I filerne .network er et aktivt standardindstilling blevet tilføjet til sektionen «[DHCPv4]», kaldet RoutesToNTP, som foreskriver tilføjelsen af en separat rute gennem den aktuelle netværksgrænseflade for adgang til NTP-serverens adresse, der er modtaget for denne grænseflade via DHCP (på samme måde som DNS-konfigurationen sikrer, at trafikken til NTP-serveren bliver dirigeret gennem den grænseflade, som denne adresse blev modtaget fra).
  • Indstillingerne SocketBindAllow og SocketBindDeny er tilføjet for at styre adgangen til sokler, der er bundet til den aktuelle tjeneste.
  • For enhedsfilene er den betingede indstilling ConditionFirmware implementeret, hvilket muliggør oprettelse af kontroller, der vurderer firmware-funktioner som brug på UEFI-systemer og device.tree samt kontrollerer kompatibilitet med bestemte device-tree-funktioner.
  • Muligheden ConditionOSRelease er implementeret for at kontrollere felter i filen /etc/os-release. Ved bestemmelser om kontrolbetingelser for værdierne i felterne er operatorerne "=", "!=" , "<", "=" og ">" tilladt.
  • I værktøjet hostnamectl er præfikserne "get" og "set" fjernet fra kommandoerne for typen "get-xyz" og "set-xyz", så man i stedet for "hostnamectl get-hostname" og "hostnamectl set-hostname" kan bruge kommandoen "hostnamectl hostname", hvor tildelingen af værdien defineres ved at angive et ekstra argument ("hostnamectl hostname værdi"). Støtte til de gamle kommandoer er bevaret for at sikre kompatibilitet.
  • I værktøjet systemd-detect-virt og opsætning af ConditionVirtualization er korrekt identifikation af Amazon EC2-miljøer sikret.
  • Indstillingen LogLevelMax i unit-filer anvendes nu ikke kun på logbeskeder oprettet af tjenesten, men også på beskederne fra proces PID 1, der nævner tjenesten.
  • Muligheden for at inkludere SBAT (UEFI Secure Boot Advanced Targeting) data i systemd-boot EFI PE-filer er blevet givet.
  • Nye muligheder "headless" og "password-echo" er blevet implementeret i /etc/crypttab – den første tillader at springe alle operationer relateret til interaktivt at anmode om adgangskoder og PIN-koder over for brugeren, og den anden giver mulighed for at justere metoden til at vise indtastningen af adgangskoden (intet vises, viser tegn for tegn, og viser stjerner). I systemd-ask-password er der tilføjet muligheden "--echo" til tilsvarende formål.
  • I systemd-cryptenroll, systemd-cryptsetup og systemd-homed er støtten til at låse op for krypterede LUKS2-partitioner med FIDO2-token udvidet. Nye indstillingsmuligheder "--fido2-with-user-presence", "--fido2-with-user-verification" og "--fido2-with-client-pin" er tilføjet for at styre verificeringen af brugerens fysiske tilstedeværelse, verifikation og krav om at indtaste PIN-koden.
  • I systemd-journal-gatewayd er indstillingerne "--user", "--system", "--merge" og "--file" tilføjet, svarende til de samme indstillinger i journalctl.
  • Ud over direkte afhængigheder mellem units, der angives via parametre som OnFailure og Slice, er der tilføjet støtte til implicitte omvendte afhængigheder OnFailureOf og SliceOf, som kan være nyttige, f.eks. til at bestemme alle units, der indgår i et slice.
  • Nye typer afhængigheder mellem units er tilføjet: OnSuccess og OnSuccessOf (modsat OnFailure, der aktiveres ved en vellykket afslutning); PropagatesStopTo og StopPropagatedFrom (muliggør at sprede stopbegivenheden for en unit til en anden unit); Upholds og UpheldBy (alternativ til Restart).
  • I værktøjet systemd-ask-password er der tilføjet en mulighed «—emoji» til at styre, hvornår låsesymbolet (🔐) vises i indtastningsfeltet for adgangskoden.
  • Dokumentation om strukturen af kildekoden til systemd er blevet tilføjet.
  • Der er tilføjet en egenskab MemoryAvailable til enhedsenheder, der viser, hvor meget hukommelse der er tilbage for enheden, inden den når den grænse, der er angivet via parametrene MemoryMax, MemoryHigh eller MemoryAvailable.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster