Wydanie menedżera systemowego systemd 242

Po dwóch miesiącach prac rozwojowych zaprezentowano wydanie menedżera systemowego systemd 242. Wśród nowości można wyróżnić wsparcie dla tuneli L2TP, możliwość zarządzania zachowaniem systemd-logind podczas ponownego uruchamiania za pomocą zmiennych środowiskowych, wsparcie dla rozszerzonych partycji rozruchowych XBOOTLDR do montowania w /boot, możliwość uruchamiania z partycji głównej w overlayfs oraz szereg nowych ustawień dla różnych typów jednostek.

Główne zmiany:

  • W systemd-networkd wprowadzono wsparcie dla tuneli L2TP.
  • W sd-boot i bootctl zrealizowano wsparcie dla partycji XBOOTLDR (Extended Boot Loader), przeznaczonych do montowania w /boot, oprócz partycji ESP montowanych w /efi lub /boot/efi. Jądra, ustawienia, obrazy initrd i EFI mogą teraz być uruchamiane zarówno z partycji ESP, jak i partycji XBOOTLDR. Wprowadzone zmiany pozwalają na użycie bootloadera sd-boot w bardziej konserwatywnych scenariuszach, gdzie sam bootloader umieszczony jest w ESP, a ładowane jądra i powiązane z nimi metadane przeniesione są do oddzielnej partycji.
  • Dodano możliwość uruchamiania z przekazywaniem do jądra opcji „systemd.volatile=overlay”, co pozwala umieścić partycję główną w overlayfs i zorganizować pracę na dostępnym tylko do odczytu obrazie głównego katalogu z zapisem zmian w oddzielnym katalogu w tmpfs (zmiany w takiej konfiguracji są tracone po ponownym uruchomieniu). Podobnie w systemd-nspawn dodano opcję „—volatile=overlay” do wykorzystania podobnej funkcjonalności w kontenerach.
  • W systemd-nspawn dodano opcję „—oci-bundle”, umożliwiającą korzystanie z zestawów runtime w celu zapewnienia izolowanego uruchamiania kontenerów spełniających wymagania specyfikacji Open Container Initiative (OCI). Dla użycia w linii poleceń oraz jednostkach nspawn zaproponowano wsparcie dla różnych opcji opisanych w specyfikacji OCI, na przykład do wykluczenia części systemu plików można stosować ustawienia „—inaccessible” oraz „Inaccessible”, a dla konfiguracji standardowych strumieni wyjściowych dodano opcje „—console” i „—pipe”.
  • Dodano możliwość zarządzania zachowaniem systemd-logind za pomocą zmiennych środowiskowych: $SYSTEMD_REBOOT_TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU oraz
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Dzięki tym zmiennym można podłączyć własne procesy obsługi procedur ponownego uruchamiania (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu i
    /run/systemd/reboot-to-boot-loader-entry) или вообще отключить их (при выставлении значения в false);
  • Do polecenia „systemctl reboot” dodano opcje „—boot-load-menu=” i
    «—boot-loader-entry=», umożliwiające po ponownym uruchomieniu wybranie konkretnego punktu menu rozruchowego lub trybu rozruchu;
  • Dodano nową komendę izolacji sandboxu «RestrictSUIDSGID=», używającą seccomp do zakazu tworzenia plików z flagami SUID/SGID;
  • Zastosowano domyślnie ograniczenia «NoNewPrivileges» i «RestrictSUIDSGID» w usługach z aktywowanym trybem dynamicznego generowania identyfikatora użytkownika («DynamicUser»);
  • Domyślne ustawienie w plikach .link MACAddressPolicy=persistent zostało zmienione, by obejmować większą liczbę urządzeń. Interfejsy sieciowych mostków, tuneli (tun, tap) i agregowanych linków (bond) nie identyfikują się poza nazwą interfejsu sieciowego, dlatego ta nazwa jest teraz używana jako podstawa do powiązania MAC i adresów IPv4. Ponadto dodano ustawienie «MACAddressPolicy=random», które można wykorzystać do losowego powiązania MAC i adresów IPv4 z urządzeniami;
  • Generowane przez systemd-fstab-generator pliki jednostek «.device» teraz nie zawierają odpowiednich jednostek «.mount» jako zależności w sekcji «Wants=». Proste podłączenie urządzenia nie prowadzi do automatycznego uruchomienia jednostki montującej, ale podobne jednostki mogą nadal być uruchamiane z innych powodów, na przykład jako część local-fs.target lub jako zależność innych jednostek, zależnych od local-fs.target;
  • Do komend «networkctl list/status/lldp» dodano wsparcie dla masek («*» itp.) w celu odfiltrowania określonych grup interfejsów sieciowych na podstawie ich nazwy;
  • Zmienna środowiskowa $PIDFILE jest teraz ustawiana za pomocą ścieżki bezwzględnej, skonfigurowanej w usługach przez parametr «PIDFile=;»
  • Do listy zapasowych serwerów DNS używanych, jeśli główny DNS nie jest wyraźnie określony, dodano publiczne serwery Cloudflare (1.1.1.1). Aby zaktualizować listę zapasowych serwerów DNS, można użyć opcji «-Ddns-servers=»;
  • W przypadku wykrycia kontrolera urządzenia USB (USB Device Controller), zapewniono automatyczne uruchomienie nowego handlera usb-gadget.target (gdy system działa na urządzeniu USB);
  • Dla plików jednostek wprowadzono ustawienie «CPUQuotaPeriodSec=», definiujące czas trwania, w odniesieniu do którego mierzy się kwotę czasu procesora, ustaloną przez ustawienie «CPUQuota=»;
  • Dla plików unit wprowadzono ustawienie „ProtectHostname=”, które zabrania usługom zmiany informacji o nazwie hosta, nawet w przypadku posiadania odpowiednich uprawnień;
  • Dla plików unit wprowadzono ustawienie „NetworkNamespacePath=”, pozwalające powiązać przestrzeń nazw z usługami lub jednostkami socket poprzez wskazanie ścieżki do pliku przestrzeni nazw w pseudo-FS /proc;
  • Dodano możliwość wyłączenia podstawiania zmiennych środowiskowych procesom uruchamianym za pomocą ustawienia „ExecStart=”, poprzez dodanie znaku „:” przed poleceniem uruchomienia;
  • Dla timerów (jednostki .timer) zaproponowane nowe flagi „OnClockChange=” oraz
    „OnTimezoneChange=”, za pomocą których można zarządzać wywołaniami jednostek przy zmianie czasu systemowego lub strefy czasowej;
  • Dodano nowe ustawienia „ConditionMemory=” oraz „ConditionCPUs=”, które określają warunki wywołania jednostki w zależności od rozmiaru pamięci i liczby rdzeni CPU (na przykład, zasobożerną usługę można uruchomić tylko w przypadku posiadania wymaganego wolumenu RAM);
  • Dodano nową jednostkę time-set.target, która przyjmuje lokalnie ustawiony czas systemowy, bez użycia synchronizacji z zewnętrznymi serwerami czasu przez jednostkę time-sync.target. Nowa jednostka może być wykorzystywana przez usługi, które wymagają jedynie dokładności niesynchronizowanych lokalnych zegarów;
  • W poleceniu „systemctl start” i podobnych dodano opcję „—show-transaction”, przy której wyświetlana jest podsumowanie wszystkich prac dodanych do kolejki w związku z żądaną operacją;
  • W systemd-networkd wprowadzono nowe określenie stanu „enslaved”, używanego zamiast „degraded” lub „carrier” dla interfejsów sieciowych włączonych w skład agregowanych połączeń lub mostów sieciowych. Dla głównych interfejsów, w przypadku problemów z jednym z agregowanych połączeń, dodano stan „degraded-carrier”;
  • W jednostkach .network dodano opcję „IgnoreCarrierLoss=”, aby zachować ustawienia sieciowe w przypadku utraty połączenia;
  • Dzięki ustawieniu „RequiredForOnline=” w jednostkach .network można teraz określić minimalny dopuszczalny stan połączenia, konieczny do przekształcenia interfejsu sieciowego w „online” oraz uruchomienia mechanizmu systemd-networkd-wait-online;
  • W systemd-networkd-wait-online dodano opcję „—any”, aby czekać na gotowość dowolnego z określonych interfejsów sieciowych zamiast wszystkich, a także opcję „—operational-state=”, aby określić stan połączenia sugerujący gotowość;
  • W jednostkach .network dodano opcje „UseAutonomousPrefix=” i „UseOnLinkPrefix=”, które można wykorzystać do ignorowania prefiksów podczas odbierania
    ogłoszenia od routera IPv6 (RA, Router Advertisement);
  • W jednostkach .network dodano opcje „MulticastFlood=”, „NeighborSuppression=” oraz „Learning=” w celu zmiany parametrów działania mostu sieciowego, a także opcję „TripleSampling=” do zmiany trybu TRIPLE-SAMPLING wirtualnych interfejsów CAN;
  • W jednostkach .netdev dodano opcje „PrivateKeyFile=” oraz „PresharedKeyFile=”, za pomocą których można określić klucze prywatny oraz współdzielony (PSK) dla interfejsów WireGuard. VPN;
  • W /etc/crypttab dodano opcje same-cpu-crypt i submit-from-crypt-cpus, które kontrolują zachowanie planisty podczas migracji między rdzeniami CPU zadań związanych z szyfrowaniem;
  • W systemd-tmpfiles zapewniono przetwarzanie pliku blokady przed wykonaniem operacji w katalogach z plikami tymczasowymi, co pozwala na chwilowe wyłączenie czyszczenia przestarzałych plików (na przykład, podczas rozpakowywania archiwum tar w /tmp mogą zostać ujawnione bardzo stare pliki, których nie można usunąć do momentu zakończenia pracy z nimi);
  • W poleceniu „systemd-analyze cat-config” dodano możliwość analizy konfiguracji rozbitej na kilka plików, takich jak użytkownik-specyficzne i systemowe ustawienia wstępne, zawartość tmpfiles.d i sysusers.d, reguły udev itd.
  • W „journalctl” dodano opcję „—cursor-file=” do określenia pliku do ładowania i zapisywania wskaźnika pozycji;
  • W systemd-detect-virt dodano identyfikację hipernadzoru ACRN oraz subsystemu WSL (Windows Subsystem for Linux) do późniejszego branżowania za pomocą warunkowego operatora „ConditionVirtualization”;
  • Podczas instalacji systemd (przy wykonywaniu „ninja install”) zaprzestano tworzenia w katalogu /etc symbolicznych linków do plików systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service i systemd-timesyncd.service. Aby utworzyć te pliki, należy teraz wykonać polecenie „systemctl preset-all”.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster