Po trzech i pół miesiącach pracy zaprezentowano wydanie menedżera systemowego systemd 253.
Wśród zmian w nowej wersji:
- W skład wchodzi narzędzie ‘ukify’, służące do budowania, weryfikacji i generowania podpisów dla ujednoliconych obrazów jądra (UKI, Unified Kernel Image), łączących program ładujący jądro z UEFI (UEFI boot stub), obraz jądra Linux oraz ładowane do pamięci środowisko systemowe initrd, stosowane do wstępnej inicjalizacji przed zamontowaniem głównego systemu plików. Narzędzie zastępuje funkcjonalność wcześniej zapewnianą przez polecenie ‘dracut —uefi’ i uzupełnia ją możliwościami automatycznego obliczania przesunięć w plikach PE, łączenia initrd, podpisywania wbudowanych obrazów jądra, tworzenia kombinowanych obrazów z sbsign, heurystyką do określania uname jądra, weryfikacją obrazu z ekranem powitalnym oraz dodawaniem podpisanych polityk PCR, generowanych przez narzędzie systemd-measure.
- Dodano wsparcie dla środowisk initrd, które nie są ograniczone do pamięci, w których zamiast tmpfs używane jest overlayfs. W przypadku takich środowisk systemd nie wykonuje usunięcia wszystkich plików w initrd po przełączeniu głównego systemu plików.
- Do usług dodano parametr „OpenFile” do otwierania dowolnych plików w systemie plików (lub łączenia z gniazdami Unix) i przesyłania związanych z nimi deskryptorów plików do uruchamianego procesu (na przykład, gdy trzeba zorganizować dostęp do pliku dla usługi nieuprzywilejowanej bez zmiany uprawnień do pliku).
- W systemd-cryptenroll, przy rejestracji nowych kluczy, zrealizowano możliwość odblokowywania zaszyfrowanych partycji za pomocą tokenów FIDO2 (—unlock-fido2-device) bez potrzeby wprowadzania hasła. Zapewniono przechowywanie z sólą podanego przez użytkownika kodu PIN, aby utrudnić jego odgadnięcie metodą brute force.
- Dodano ustawienia ReloadLimitIntervalSec i ReloadLimitBurst, a także opcje wiersza poleceń jądra (systemd.reload_limit_interval_sec i /systemd.reload_limit_burst) w celu ograniczenia intensywności ponownego uruchamiania procesów w tle.
- Dla jednostek wprowadzono opcję „MemoryZSwapMax” do konfiguracji właściwości memory.zswap.max, określającej maksymalny rozmiar zswap.
- Dla jednostek wprowadzono opcję „LogFilterPatterns”, która pozwala na określenie wyrażeń regularnych do filtrowania informacji wyświetlanych w logach (może być używana do wykluczania określonych danych lub zachowania tylko tych konkretnych informacji).
- W jednostkach scope wprowadzono obsługę ustawienia „OOMPolicy” do określenia zachowania podczas próby usunięcia w przypadku braku pamięci (dla sesji logowania ustawiono wartość OOMPolicy=continue, aby OOM killer nie przerywał ich wymuszenie).
- Określono nowy typ usług — „Type=notify-reload”, który rozszerza typ „Type=notify” możliwością oczekiwania na zakończenie przetwarzania sygnału ponownego uruchomienia (SIGHUP). Nowy typ został przypisany usługom systemd-networkd.service, systemd-udevd.service i systemd-logind.
- W udev wprowadzono nową schemę nazewnictwa urządzeń sieciowych, której różnica polega na tym, że dla urządzeń USB, które nie są związane z magistralą PCI, teraz ustawiane jest ID_NET_NAME_PATH, aby zapewnić większą przewidywalność nazw. Dla zmiennych SYMLINK wprowadzono operator ‘-=’, pozostawiający symbolicze linki niezdefiniowanymi, jeśli wcześniej określono zasady ich dodawania.
- W systemd-boot przekształcono przekazywanie inicjacji dla generatorów liczb pseudolosowych w jądrze oraz dla backendu dyskowego. Dodano obsługę ładowania jądra nie tylko z partycji ESP (EFI System Partition), na przykład z firmware’u lub bezpośrednio dla QEMU. Zapewniono analizę parametrów SMBIOS w celu określenia uruchamiania w środowisku wirtualizacji. Wprowadzono nowy tryb ‘if-safe’, w którym certyfikat do UEFI Secure Boot ładowany jest z ESP tylko wtedy, gdy uznawany jest za bezpieczny (uruchamiany w maszynie wirtualnej).
- W narzędziu bootctl wprowadzono generację tokenów systemowych na wszystkich systemach EFI, z wyjątkiem środowisk wirtualizacyjnych. Dodano polecenia ‘kernel-identify’ i ‘kernel-inspect’ do wyświetlania typu obrazu jądra oraz informacji o opcjach wiersza poleceń i wersji jądra, „unlink” do usunięcia pliku związanego z pierwszym typem wpisów rozruchowych, „cleanup” do usunięcia wszystkich plików z katalogu „entry-token” w ESP i XBOOTLDR, które nie są związane z pierwszym typem wpisów rozruchowych. Zapewniono obsługę zmiennej KERNEL_INSTALL_CONF_ROOT.
- W poleceniu ‘systemctl list-dependencies’ zapewniono obsługę opcji „—type” i „—state”, a w poleceniu ‘systemctl kexec’ dodano obsługę środowisk opartych na hipernadzorze Xen.
- W plikach .network w sekcji [DHCPv4] dodano obsługę opcji SocketPriority oraz QuickAck, RouteMetric=high|medium|low.
- W systemd-repart dodano opcje „—include-partitions”, „—exclude-partitions” i „—defer-partitions” do filtrowania partycji według typu UUID, co na przykład pozwala na tworzenie obrazów, w których jedna partycja opiera się na zawartości innej partycji. Dodano także opcję „—sector-size” do określenia rozmiaru sektora używanego podczas tworzenia partycji. Wprowadzono wsparcie dla generowania systemu plików erofs. W ustawieniu Minimize wprowadzono obsługę wartości „best” w celu wyboru minimalnie możliwego rozmiaru obrazu.
- W systemd-journal-remote zezwolono na użycie ustawień MaxUse, KeepFree, MaxFileSize i MaxFiles w celu ograniczenia zużycia przestrzeni dyskowej.
- W systemd-cryptsetup dodano wsparcie dla wysyłania zapytań prewencyjnych do tokenów FIDO2 w celu określenia ich obecności przed uwierzytelnieniem.
- W crypttab dodano nowe parametry tpm2-measure-bank i tpm2-measure-pcr.
- W systemd-gpt-auto-generator wprowadzono montowanie partycji ESP i XBOOTLDR w trybach „noexec,nosuid,nodev”, a także dodano uwzględnienie parametrów przekazanych przez linię poleceń jądra rootfstype i rootflags.
- W systemd-resolved udostępniono możliwość konfiguracji parametrów resolvera poprzez określenie opcji nameserver, domain, network.dns i network.search_domains w linii poleceń jądra.
- W poleceniu „systemd-analyze plot” dodano możliwość wyjścia w formacie JSON po wskazaniu flagi „—json”. Do zarządzania wyjściem dodano również nowe opcje „—table” i „—no-legend”.
- W 2023 roku planowane jest zaprzestanie wsparcia dla cgroups v1 oraz oddzielnych hierarchii katalogów (gdy /usr jest montowany oddzielnie od korzenia lub oddzielone są katalogi /bin i /usr/bin, /lib i /usr/lib).
Źródło: opennet.ru
