Wydanie menedżera systemowego systemd 244

Po trzech miesiącach prac rozwojowych zaprezentowano premiera menedżera systemowego systemd 244.

Główne zmiany:

  • Dodano wsparcie dla kontrolera zasobów cpuset opartego na cgroups v2, który zapewnia mechanizm do przypisywania procesów do określonych CPU (konfiguracja „AllowedCPUs”) oraz węzłów pamięci NUMA (konfiguracja „AllowedMemoryNodes”);
  • Dodano wsparcie dla ładowania ustawień z zmiennej EFI SystemdOptions dla konfiguracji systemd, co pozwala na dostosowanie zachowania systemd w sytuacji, gdy zmiana parametrów wiersza poleceń jądra jest problematyczna, a konfiguracja z dysku jest odczytywana zbyt późno (na przykład, gdy trzeba ustawić opcje związane z hierarchią cgroup). Do ustawienia zmiennej w EFI można użyć polecenia ‘bootctl systemd-efi-options’;
  • Do jednostek dodano wsparcie dla ładowania ustawień z katalogów „{unit_type}.d/” powiązanych z typami jednostek (na przykład „service.d/”), które można stosować do dodawania ustawień obejmujących wszystkie pliki jednostek danego typu;
  • Dla jednostek usług dodano tryb izolacji sandbox ProtectKernelLogs, który pozwala na zablokowanie dostępu programu do bufora logów jądra, dostępnego przez wywołanie syslog (nie mylić z identycznym API dostarczanym w libc). Po aktywacji trybu dostęp aplikacji do /proc/kmsg, /dev/kmsg i CAP_SYSLOG będzie zablokowany;
  • Dla jednostek wprowadzono ustawienie RestartKillSignal, które pozwala na nadpisanie numeru sygnału używanego do zakończenia procesu podczas restartu zadań (można zmienić zachowanie zatrzymania procesu na etapie przygotowania do ponownego uruchomienia);
  • Polecenie „systemctl clean” dostosowano do zastosowania z jednostkami gniazd, montowania i swap (socket, mount, swap);
  • Na wczesnym etapie bootowania wyłączono ograniczenia dotyczące intensywności wydawania przez jądro komunikatów za pomocą wywołania printk, co pozwala na gromadzenie pełniejszych logów z przebiegu bootowania w fazie, gdy magazyn dla logów nie jest jeszcze podłączony (log gromadzony jest w pierścieniowym buforze jądra). Ustawienie limitów dla printk z wiersza poleceń jądra ma wyższy priorytet i pozwala na przesunięcie zachowania systemd. Programy systemd, które bezpośrednio wydają logi do /dev/kmsg (co robi się tylko na wczesnym etapie bootowania), używają osobnych wewnętrznych ograniczeń w celu ochrony przed zatykaniem bufora;
  • Do narzędzia systemctl dodano polecenie ‘stop —job-mode=triggering’, które pozwala zatrzymać zarówno określoną w wierszu poleceń jednostkę, jak i wszystkie jednostki, które mogą ją wywołać;
  • Informacje o stanie jednostki teraz obejmują dane o jednostkach wywołujących i wywoływanych;
  • Możliwość korzystania z ustawienia „RuntimeMaxSec” w jednostkach zakresu (wcześniej stosowane tylko w jednostkach serwisowych) została zapewniona. Na przykład, „RuntimeMaxSec” może teraz być stosowane do ograniczenia czasu sesji PAM przez utworzenie jednostki zakresu dla konta użytkownika.
    Ograniczenie czasu może być również określone za pomocą opcji systemd.runtime_max_sec w parametrach modułu PAM pam_systemd;
  • Dodano nową grupę wywołań systemowych „@pkey”, która ułatwia dodawanie do białych list wywołań systemowych związanych z ochroną pamięci w ograniczonych kontenerach i usługach;
  • W systemd-tmpfiles dodano flagę „w+” do zapisu w trybie uzupełniania pliku;
  • W wyjściu systemd-analyze dodano informacje o zgodności konfiguracji pamięci jądra z ustawieniami systemd (na przykład, jeśli jakaś zewnętrzna aplikacja zmieniła parametry jądra);
  • W systemd-analyze dodano opcję „—base-time”, która pozwala na obliczanie danych kalendarzowych w odniesieniu do czasu podanego w tej opcji, a nie do aktualnego systemowego czasu;
  • W „journalctl —update-catalog” zapewniono stałe zachowanie elementów w wyjściu (przydatne do organizowania powtarzalnych kompilacji);
  • Dodano możliwość określenia wartości domyślnej dla ustawienia „WatchdogSec”, stosowanego w usługach systemd. W trakcie kompilacji podstawowa wartość może być określona za pomocą opcji „-Dservice-watchdog” (jeśli wartość pusta zostanie ustawiona, watchdog zostanie wyłączony);
  • Dodano opcję kompilacji „-Duser-path” do nadpisania wartości $PATH;
  • Do narzędzia systemd-id128 dodano opcję „-u” („—uuid”) do wyświetlania identyfikatorów 128-bitowych w UUID (kanoniczna reprezentacja UUID);
  • Do kompilacji wymagana jest teraz co najmniej wersja libcryptsetup 2.0.1.

Zmiany związane z konfiguracją sieci:

  • W systemd-networkd dodano wsparcie dla dynamicznej rekonfiguracji łącza, w tym celu dodano w networkctl polecenia „reload” i „reconfigure DEVICE…” do ponownego załadowania ustawień i rekonfiguracji urządzeń;
  • W systemd-networkd zaniechano tworzenia domyślnych tras dla lokalnych łączy IPv4 z adresami intranetowymi 169.254.0.0/16 (Link-local). Wcześniejsze automatyczne tworzenie domyślnych tras dla takich linków prowadziło do nieprzewidzianego zachowania i problemów z trasowaniem w niektórych przypadkach. Aby przywrócić starą funkcjonalność, należy użyć ustawienia „DefaultRouteOnDevice=yes”. Podobnie, przypisanie lokalnych adresów IPv6 zostało wstrzymane, jeśli lokalne trasowanie IPv6 dla linku nie jest włączone;
  • W systemd-networkd podczas łączenia w sieciach bezprzewodowych w trybie ad-hoc, domyślnie wdrażana jest konfiguracja z lokalnym adresowaniem dla linku (link-local);
  • Dodano parametry RxBufferSize i TxBufferSize do konfiguracji rozmiaru buforów odbiorczych i nadawczych interfejsu sieciowego;
  • W systemd-networkd wdrożono ogłaszanie dodatkowych tras IPv6, regulowane przez opcje Route i LifetimeSec w sekcji „[IPv6RoutePrefix]”;
  • W systemd-networkd dodano możliwość konfiguracji tras „next hop” za pomocą opcji „Gateway” i „Id” w sekcji „[NextHop]”;
  • W systemd-networkd i networkctl dla DHCP zapewniono aktualizację powiązań adresów IP (leases) na bieżąco, realizowane przez polecenie ‘networkctl renew’;
  • systemd-networkd zapewnia reset konfiguracji DHCP podczas ponownego uruchomienia (aby zachować ustawienia, należy używać parametru KeepConfiguration). Wartość ustawienia SendRelease domyślnie zmieniono na „true”;
  • W kliencie DHCPv4 zapewniono użycie wartości opcji OPTION_INFORMATION_REFRESH_TIME, przesłanej przez serwer. Aby zażądać specyficznych opcji od serwera, zaproponowano parametr „RequestOptions”, a do przesyłania opcji do serwera — „SendOption”. Dodano parametr „IPServiceType” do konfiguracji typu usługi IP przez klienta DHCP;
  • Aby dodać listę serwerów SIP (Session Initiation Protocol) do DHCPv4, dodano parametry „EmitSIP” i „SIP”. Po stronie klienta odbieranie parametrów SIP z serwera można włączyć za pomocą ustawienia „UseSIP=yes”;
  • W kliencie DHCPv6 dodano parametr „PrefixDelegationHint” do żądania adresowego prefiksu;
  • W plikach .network zapewniono wsparcie dla mapowania sieci bezprzewodowych według SSID i BSSID, na przykład w celu powiązania z nazwą punktu dostępowego i adresem MAC. Wartości SSID i BSSID są wyświetlane w wynikach networkctl dla interfejsów bezprzewodowych. Dodatkowo dodano możliwość mapowania według typu sieci bezprzewodowej (parametr WLANInterfaceType);
  • W systemd-networkd dodano możliwość konfigurowania dyscyplin kolejkowania do zarządzania ruchem za pomocą nowych parametrów Parent,
    NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
    NetworkEmulatorPacketLimit i NetworkEmulatorLossRate,
    NetworkEmulatorDuplicateRate w sekcji «[TrafficControlQueueingDiscipline]»;
  • W systemd-resolved zapewniono weryfikację adresów IP w certyfikatach podczas kompilacji z GnuTLS.

Zmiany związane z udev:

  • W systemd-udevd usunięto 30-sekundowy limit czasowy na wymuszone zakończenie zawieszonych handlerów. Systemd-udevd teraz czeka na zakończenie pracy handlerów, dla których 30 sekund było niewystarczające do normalnego zakończenia operacji w dużych instalacjach (na przykład, limit czasowy mógł przerwać inicjalizację sterownika podczas przełączania zamontowanej partycji dla systemu plików root). Przy użyciu systemd, limit czasowy, który systemd-udevd będzie czekał przed wyjściem, można ustawić za pomocą opcji TimeoutStopSec w systemd-udevd.service. Przy uruchamianiu bez systemd, limit czasowy regulowany jest parametrem udev.event_timeout;
  • Dla udev dodano program fido_id, który identyfikuje tokeny FIDO CTAP1
    („U2F”) / CTAP2 na podstawie danych o ich wcześniejszym użyciu i wyprowadza wymagane zmienne środowiskowe (program pozwala obejść się bez zewnętrznych białych list wszystkich znanych tokenów, które były używane wcześniej);
  • Zrealizowano automatyczne generowanie zasad udev autosuspend dla urządzeń z białej listy, importowanej z Chromium OS (zmiana pozwala na szersze zastosowanie trybów oszczędzania energii dla dodatkowych urządzeń);
  • W udev dodano nowe ustawienie „CONST{key}=value”, umożliwiające bezpośrednie wykonywanie dopasowań wartości stałych systemowych bez uruchamiania oddzielnych handlerów w celu weryfikacji. Obecnie wspierane są tylko klucze „arch” i „virt”;
  • Zapewniono otwieranie CDROM w trybie nieekskluzywnym podczas wykonywania operacji żądania wspieranych trybów (zmiana ta rozwiązuje problemy z dostępem programów do CDROM i zmniejsza ryzyko przerwań programów nagrywających na dysk, które nie stosują ekskluzywnego trybu dostępu).

Ź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