Nakon pet mjeseci razvoja, predstavljen je novi izdanak sistemskog menadžera systemd 250. U novom izdanju dodana je mogućnost pohrane korisničkih podataka u šifriranom obliku, uvedena je provjera automatski definirajućih GPT particija putem digitalnog potpisa, poboljšano je obavještavanje o uzrocima kašnjenja pri pokretanju servisa, dodane su opcije za ograničavanje pristupa servisa određenim datotečnim sustavima i mrežnim sučeljima, omogućena je podrška za kontrolu cjelovitosti particija pomoću modula dm-integrity, a dodana je i podrška za automatsko ažuriranje sd-boot.
Glavne promjene:
- Dodana je podrška za šifrirane i autentificirane korisničke podatke, što može biti korisno za sigurnu pohranu povjerljivih materijala, kao što su SSL-ključevima i pristupnim lozinkama. Dešifriranje korisničkih podataka vrši se samo kada je to nužno i u vezi s lokalnom instalacijom ili opremom. Podaci se automatski šifriraju koristeći simetrične algoritme šifriranja, a ključ za to može se pohranjivati u datotečnom sustavu, čipu TPM2 ili uz korištenje kombinirane sheme. Prilikom pokretanja servisa, korisnički podaci automatski se dešifriraju i postaju dostupni servisu u uobičajenom obliku. Za rad s šifriranim korisničkim podacima dodana je alatka 'systemd-creds', dok su za servise ponuđene postavke LoadCredentialEncrypted i SetCredentialEncrypted.
- U sd-stub, izvršnoj datoteci za EFI, putem koje EFI firmware učitava Linux kernel, dodana je podrška za učitavanje kernela korištenjem protokola LINUX_EFI_INITRD_MEDIA_GUID EFI. Također, u sd-stub dodana je mogućnost pakiranja korisničkih podataka i sysext datoteka u cpio arhivu i prijenos te arhive kernelu zajedno s initrd-om (dodatne datoteke se postavljaju u direktorij \/.extra\/). Ova mogućnost omogućava korištenje verifikabilnog nepromjenjivog okruženja initrd, koje se nadopunjuje sysext datotekama i šifriranim podacima za autentifikaciju.
- Specifikacija Discoverable Partitions značajno je proširena, pružajući alate za određivanje, montiranje i aktiviranje sistemskih particija koje koriste GPT (GUID Partition Tables). U usporedbi s prethodnim izdanjima, za većinu arhitektura, u specifikaciji je implementirana podrška za korijensku particiju i particiju \/usr, uključujući platforme koje ne koriste UEFI.
U Discoverable Partitions također je dodana podrška za particije čija se cjelovitost verificira modulom dm-verity koristeći digitalne potpise PKCS#7, što olakšava kreiranje potpuno autentificiranih diskovnih slika. Podrška za verifikaciju integrirana je u različite alate koji manipuliraju diskovnim slikama, uključujući systemd-nspawn, systemd-sysext, systemd-dissect, usluge s RootImage, systemd-tmpfiles i systemd-sysusers.
- Za dugo pokretane ili zaustavljene jedinice, osim prikaza animiranog indikatora izvršenja operacije, dodana je opcija za prikaz informacija o stanju, što omogućuje razumijevanje onoga što se trenutno događa sa servisom i završetka izvršavanja kojeg servisa trenutno sustavni menadžer očekuje.
- U /etc/systemd/system.conf i /etc/systemd/user.conf dodana je postavka DefaultOOMScoreAdjust, koja omogućuje podešavanje praga aktiviranja OOM-killera pri nedostatku memorije, primjenjiva na procese koje pokreće systemd za sustav i korisnike. Po zadanom, težina sistemskih servisa je veća od korisničkih, tj. pri nedostatku memorije vjerojatnost završetka korisničkih servisa je veća od sistemskih.
- Dodana je postavka RestrictFileSystems, koja omogućuje ograničavanje pristupa servisa određenim tipovima datotečnih sustava. Za pregled dostupnih tipova FS može se koristiti naredba 'systemd-analyze filesystems'. Po analogiji je implementirana opcija RestrictNetworkInterfaces, koja omogućuje ograničavanje pristupa određenim mrežnim sučeljima. Implementacija se temelji na BPF-modulu LSM, koji ograničava pristup grupe procesa objektima jezgre.
- Dodana je nova konfiguracijska datoteka /etc/integritytab i alat systemd-integritysetup, koji konfiguriraju modul dm-integrity za kontrolu cjelovitosti podataka na razini pojedinih sektora, na primjer, za jamstvo nepromjenjivosti šifriranih podataka (Authenticated Encryption, jamči da blok podataka nije modificiran na zaobilazan način). Format datoteke /etc/integritytab sličan je datotekama /etc/crypttab i /etc/veritytab, osim što umjesto dm-crypt i dm-verity koristi dm-integrity.
- Dodana je nova jedinica datoteka systemd-boot-update.service, koja pri aktivaciji i prisutnosti instaliranog pokretača sd-boot automatski ažurira verziju pokretača sd-boot, održavajući kod pokretača uvijek ažurnim. Sam sd-boot se sada prema zadanim postavkama sastavlja s podrškom za mehanizam SBAT (UEFI Secure Boot Advanced Targeting), koji rješava probleme s opozivom certifikata za UEFI Secure Boot. Osim toga, u sd-boot je omogućena mogućnost analize postavki pokretanja Microsoft Windows za ispravno formiranje naziva pokretačkih particija s Windowsom i prikaz verzije Windowsa.
U sd-bootu je također omogućena definicija sheme boja tijekom faze sastavljanja. U procesu pokretanja dodana je podrška za promjenu razlučivosti ekrana pritiskom na tipku „r“. Dodana je prečica tipkovnice „f“ za prijelaz u sučelje za postavljanje firmvera. Uveden je način automatskog pokretanja sustava koji odgovara stavci izbornika odabranoj prilikom posljednjeg pokretanja. Omogućeno je automatsko pokretanje EFI drajvera smještenih u direktoriju /EFI/systemd/drivers/ u odjeljku ESP (EFI sistemska particija).
- Uključena je nova jedinica datoteka factory-reset.target, koja se obrađuje u systemd-logind prema analogiji s operacijama ponovnog pokretanja, isključivanja, uspavljivanja i hibernacije, i koristi se za stvaranje obrađivača za izvršavanje vraćanja na tvorničke postavke.
- Proces systemd-resolved sada stvara dodatni slušajući socket na adresi 127.0.0.54 uz 127.0.0.53. Zahtjevi koji dolaze na adresu 127.0.0.54 uvijek se preusmjeravaju na viši DNS poslužitelj i ne obrađuju se lokalno.
- Omogućena je izgradnja systemd-importd i systemd-resolved s knjižnicom OpenSSL umjesto libgcrypt.
- Dodana je početna podrška za arhitekturu LoongArch, koja se koristi u procesorima Loongson.
- U systemd-gpt-auto-generator implementirana je mogućnost automatske konfiguracije particija s virtualnom memorijom određenih sustavom, koje su zaštićene LUKS2 pod-sustavom.
- U kodu za analizu GPT slika, koji se koristi u systemd-nspawn, systemd-dissect i sličnim alatima, implementirana je mogućnost dekodiranja slika za druge arhitekture, što omogućava korištenje systemd-nspawn za pokretanje slika u emulatorima drugih arhitektura.
- Prilikom inspekcije diskovnih slika u systemd-dissect sada se ispisuju informacije o namjeni particije, poput prikladnosti za pokretanje putem UEFI ili pokretanja u kontejneru.
- U datoteke system-extension.d/ dodano je polje „SYSEXT_SCOPE“, koje omogućuje označavanje područja primjene sustavnog imidža – „initrd“, „system“ ili „portable“.
- U datoteku os-release dodano je polje „PORTABLE_PREFIXES“, koje se može koristiti u prijenosnim imidžima za određivanje podržanih prefiksa unit-datoteka.
- U systemd-logind implementirane su nove postavke HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress i HandleHibernateKeyLongPress, koje se mogu koristiti za određivanje radnji pri dugom pritisku određenih tipki duže od 5 sekundi (na primjer, pri brzom pritisku tipke Suspend može se postaviti prijelaz u gašenje, a pri dugom pritisku – u stanje spavanja).
- Za unit-e implementirane su postavke StartupAllowedCPUs i StartupAllowedMemoryNodes, koje se razlikuju od sličnih postavki bez prefiksa Startup po tome što se primjenjuju samo u fazi pokretanja i gašenja, što omogućuje postavljanje drugih ograničenja resursa pri pokretanju.
- Dodane su provjere [Condition|Assert][Memory|CPU|IO]Pressure, koje omogućuju preskočiti ili završiti aktivaciju unit-a s pogreškom u slučaju određivanja velike opterećenosti memorije, CPU-a i ulaza/izlaza u sustavu putem mehanizma PSI.
- Zadana ograničenja na maksimalni broj inodova povećana su za particiju /dev s 64k na 1M, a za /tmp s 400k na 1M.
- Za servise ponuđena je postavka ExecSearchPath, koja omogućava promjenu putanje za pretraživanje izvršnih datoteka koje se pokreću preko sličnih postavki kao što je ExecStart.
- Dodana je postavka RuntimeRandomizedExtraSec, koja omogućava uvođenje slučajnih odstupanja u tajmer RuntimeMaxSec, koji ograničava vrijeme izvršavanja unit-a.
- Proširena je sintaksa postavki RuntimeDirectory, StateDirectory, CacheDirectory i LogsDirectory, u kojima se dodavanjem dodatne vrijednosti, odvojene dvotočkom, sada može organizirati stvaranje simboličke veze na zadanom direktoriju za omogućavanje pristupa putem više putanja.
- Za servise ponuđene su postavke TTYRows i TTYColumns za određivanje broja redaka i stupaca na TTY uređaju.
- Dodana je postavka ExitType, koja omogućava promjenu logike određivanja završetka servisa. Zadano, systemd prati završetak samo glavnog procesa, ali pri postavljanju ExitType=cgroup, sistemski menadžer će čekati završetak posljednjeg procesa u cgroup.
- Implementacija podrške za TPM2/FIDO2/PKCS11 u systemd-cryptsetup sada se također gradi kao plugin za cryptsetup, što omogućava korištenje obične komande cryptsetup za otključavanje šifrirane particije.
- U handleru TPM2 u systemd-cryptsetup/systemd-cryptsetup dodana je podrška za primarne RSA ključeve, uz ECC ključeve, radi poboljšanja kompatibilnosti s čipovima koji ne podržavaju ECC.
- U /etc/crypttab dodana je opcija token-timeout koja omogućava definiranje maksimalnog vremena čekanja za povezivanje PKCS#11/FIDO2 tokena, nakon čega će se prikazati upit za unos lozinke ili ključa za oporavak.
- U systemd-timesyncd implementirana je opcija SaveIntervalSec koja omogućava povremeno spremanje trenutnog sistemskog vremena na disk, na primjer, za implementaciju monotonih sati na sustavima bez RTC-a.
- U utilitiy systemd-analyze dodane su opcije: „—image“ i „—root“ za provjeru unit fajlova unutar zadanog imidža ili korijenskog direktorija, „—recursive-errors“ za uzimanje u obzir zavisnih jedinica prilikom otkrivanja grešaka, „—offline“ za provjeru odvojenih unit fajlova spremljenih na disk, „—json“ za ispis u JSON formatu, „—quiet“ za isključivanje nevažnih poruka, „—profile“ za vezivanje uz prenosivi profil. Također je dodana komanda inspect-elf za analizu core fajlova u ELF formatu i mogućnost provjere unit fajlova sa zadanom jedinicom, bez obzira na to odgovara li to ime nazivu datoteke.
- U systemd-networkd proširena je podrška za CAN bus (Controller Area Network). Dodane su postavke za upravljanje CAN načinima: Loopback, OneShot, PresumeAck i ClassicDataLengthCode. U sekciju [CAN] datoteka .network dodane su opcije TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 i DataSyncJumpWidth za upravljanje bitnom sinkronizacijom CAN sučelja.
- U systemd-networkd za DHCPv4 klijenta dodana je opcija Label koja omogućava postavljanje oznake adresa koja se primjenjuje prilikom konfiguracije IPv4 adresa.
- U systemd-udevd za „ethtool“ implementirana je podrška za posebne vrijednosti „max“ koje postavljaju veličinu međuspremnika na maksimalnu vrijednost koju podržava hardver.
- U .link datotekama za systemd-udevd sada je moguće konfigurirati različite parametre za spajanje mrežnih adaptera i povezivanje hardverskih obrada (offload).
- U systemd-networkd po defaultu su predložene nove .network datoteke: 80-container-vb.network za definiranje mrežnih mostova stvorenih prilikom pokretanja systemd-nspawn s opcijama «—network-bridge» ili «—network-zone»; 80-6rd-tunnel.network za definiranje tunela koji se automatski kreiraju prilikom dobivanja DHCP odgovora s opcijom 6RD.
- U systemd-networkd i systemd-udevd dodana je podrška za prosljeđivanje IP-a preko InfiniBand sučelja, za koje je u datoteke systemd.netdev dodan odjeljak «[IPoIB]», a u postavci Kind implementirano je obrađivanje vrijednosti «ipoib».
- U systemd-networkd omogućena je automatska konfiguracija ruta za adrese navedene u parametru AllowedIPs, koja se može konfigurirati putem parametara RouteTable i RouteMetric u odjeljcima [WireGuard] i [WireGuardPeer].
- U systemd-networkd omogućena je automatska generacija nepromjenjivih MAC adresa za sučelja batadv i bridge. Da biste onemogućili ovo ponašanje, možete navesti vrijednost MACAddress=none u .netdev datotekama.
- U datoteke .link u odjeljak «[Link]» dodana je postavka WakeOnLanPassword, za određivanje lozinke prilikom rada WoL u režimu «SecureOn».
- U odjeljak «[CAKE]» datoteka .network dodane su postavke AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO i UseRawPacketSize za definiranje parametara mehanizma upravljanja mrežnim redovima CAKE (Common Applications Kept Enhanced).
- U odjeljak «[Network]» datoteka .network dodana je postavka IgnoreCarrierLoss, koja omogućuje definiranje koliko dugo čekati prije nego što se reagira na gubitak nosivog signala.
- U systemd-nspawn, homectl, machinectl i systemd-run proširena je sintaksa parametra «—setenv» — ako se navede samo ime varijable (bez «=»), vrijednost će biti preuzeta iz odgovarajuće varijable okruženja (na primjer, prilikom navođenja «—setenv=FOO» bit će preuzeta vrijednost iz varijable okruženja $FOO i korištena u postavljenoj varijabli okruženja s istim imenom unutar kontejnera).
- U systemd-nspawn dodana je opcija «—suppress-sync» za isključivanje izvršavanja sistemskih poziva sync()/fsync()/fdatasync() prilikom stvaranja kontejnera (korisno kada je brzina prioritetna, a očuvanje gradbenih artefakata u slučaju kvara nije važno, jer se mogu ponovo stvoriti u bilo kojem trenutku).
- Dodana je nova baza podataka hwdb koja uključuje različite tipove analizatora signala (multimetri, analizatori protokola, osciloskopi itd.). Informacije o kamerama u hwdb proširene su poljem s informacijama o vrsti kamere (obična ili infracrvena) i poziciji objektiva (sprijeda ili straga).
- Osigurana je generacija nepromjenjivih imena mrežnih sučelja za uređaje netfront koji se koriste u Xenu.
- Analiza core datoteka pomoću alata systemd-coredump na temelju biblioteka libdw/libelf sada se odvija u zasebnom procesu, izoliranom u sandbox okruženju.
- U systemd-importd dodana je podrška za varijable okruženja $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, putem kojih se može onemogućiti generacija podvolumena Btrfs, kao i konfigurirati kvote i sinkronizacija diskova.
- U systemd-journald na datotečnim sustavima s podrškom za način copy-on-write omogućeno je ponovno uključivanje COW načina za arhivske zapise, što omogućuje njihovo komprimiranje uz pomoć Btrfs.
- U systemd-journald implementirana je deduplikacija istih polja u jednoj poruci koja se vrši u fazi prije stavljanja poruke u zapis.
- U naredbu shutdown dodana je opcija "—show" za prikaz zakazanog zatvaranja sustava.
Izvor: opennet.ru
