systemd menedżer systemu wersja 257

Po sześciu miesiącach prac zaprezentowano wydanie menedżera systemu systemd 257. Kluczowe zmiany: nowe narzędzia systemd-sbsign i systemd-keyutil, obsługa MPTCP po aktywacji przez gniazdo, wstępna obsługa budowania z biblioteką Musl C, biblioteka Musl C. narzędzie updatectl do zarządzania instalacją aktualizacji poprzez systemd-sysupdate, możliwość uruchamiania usług w oddzielnych przestrzeniach nazw PID, ochrona przed przypadkowym usunięciem plików podczas korzystania z „systemd-tmpfiles —purge”.

Wśród zmian w nowej wersji:

  • Добавлена новая утилита systemd-sbsign для заверения цифровой подписью исполняемых файлов в формате PE (Portable Executable), предназначенных для использования при загрузке в режиме EFI Secure Boot. Для формирования подписи могут использоваться движки и провайдеры, предоставляемые библиотекой OpenSSL. Systemd-sbsign может применяться в качестве альтернативы приложениям sbsigntool и pesign в утилите ukify при формировании универсальных образов ядра UKI (Unified Kernel Image), объединяющих в одном файле загрузчик для UEFI (UEFI boot stub), образ ядра Linux i środowisko systemowe initrd załadowane do pamięci.
  • Dodano nowe narzędzie systemd-keyutil, które implementuje różne operacje na kluczach prywatnych i certyfikatach X.509. Na przykład systemd-keyutil można wykorzystać do przetestowania możliwości ładowania kluczy prywatnych i certyfikatów oraz wyodrębniania z nich kluczy publicznych w formacie PEM.
  • W jednostkach „.socket” służących do zapewnienia działania mechanizmu aktywacji gniazda (uruchamiania procesów przy próbie nawiązania połączenia sieciowego) zaimplementowano obsługę protokołu MPTCP (Multipath TCP), rozszerzenia protokołu TCP, które umożliwia organizację działania połączenia TCP z jednoczesną dostawą pakietów kilkoma trasami przez różne interfejsy sieciowe powiązane z różnymi Adresy IP.
  • Zawiera zmiany niezbędne do zbudowania przy użyciu standardowej biblioteki Musl C.
  • В различные компоненты systemd, выводящие индикаторы прогресса выполнения операций (например, systemd-repart, systemd-sysupdate/updatectl и importctl), добавлена возможность использования ANSI-последовательностей для анимирования отображения прогресса. Подобные последовательности пока поддерживаются только в Windows Terminal (предполагается, что со временем подобная возможность будет перенесена и в эмуляторы терминалов для Linux).
  • Rozszerzone zostały możliwości komponentu systemd-sysupdate, służącego do automatycznego wykrywania, pobierania i instalowania aktualizacji przy wykorzystaniu atomowego mechanizmu zastępowania partycji, plików czy katalogów (wykorzystywane są dwie niezależne partycje/pliki/katalogi, z czego jedna zawiera aktualnie działającą zasób, a drugi instaluje kolejną) aktualizację, po której następuje zamiana sekcji/plików/katalogów). W praktyce systemd-sysupdate jest już używany w systemie operacyjnym GNOME.

    Oprócz procesu systemd-sysupdate dodano usługę o tej samej nazwie, która umożliwia wykorzystanie D-Bus do zarządzania aktualizacjami systemu przez nieuprzywilejowanego użytkownika. Do zarządzania usługą dołączono także nowe narzędzie updatectl. Dodano flagę „--offline” do systemd-sysupdate, aby wyłączyć pobieranie metadanych przez sieć i używać tylko wersji już pobranych do systemu lokalnego. Dodano obsługę danych wyjściowych w formacie JSON dla wszystkich poleceń.

  • Dla usług zaimplementowano nową właściwość „PrivatePIDs”, dzięki której można organizować uruchamianie procesów z PID 1 (proces inicjujący) w osobnej przestrzeni identyfikatorów procesów (przestrzeni nazw PID). W środowisku stworzonym dla uruchomionego procesu widoczne będą jedynie procesy z utworzonej dla niego przestrzeni nazw.
  • Dodano obsługę dopasowań nieuwzględniających wielkości liter w regułach udev (np. „ATTR{foo}==i»abcd»”). Za pomocą udev możliwe jest zapewnienie nieuprzywilejowanym użytkownikom lokalnym dostępu („uaccess”) do urządzenia /dev/udmabuf, co jest niezbędne do pracy z kamerami IPMI poprzez libcamera. udev umożliwia rozpoznawanie różnych sprzętowych portfeli kryptowalutowych z interfejsem USB i ustawianie dla nich właściwości ID_HARDWARE_WALLET, co pozwala na zastosowanie do nich trybu „uaccess” w celu umożliwienia dostępu nieuprzywilejowanym użytkownikom.
  • Do pliku /etc/os-release dodano nowe pola RELEASE_TYPE, EXPERIMENT i EXPERIMENT_URL. „RELEASE_TYPE” może przyjmować wartości „eksperymentalne”, „rozwojowe”, „stabilne” i „lts”, aby oddzielić wersje stabilne od wersji rozwojowych i eksperymentalnych. Parametry EXPERIMENT i EXPERIMENT_URL mają na celu wyjaśnienie istoty kompilacji eksperymentalnej.
  • Narzędzie run0, opracowane jako zamiennik programu sudo, dodało opcję „--shell-prompt-prefix”, która określa ciąg przedrostka dla wiersza poleceń powłoki. Domyślnie emoji „🦸” jest wyświetlane jako przedrostek, aby wizualnie podkreślić wyższą sesję.
  • W systemd-tmpfiles, aby uniknąć przypadkowego usunięcia niewłaściwych plików, opcja „--purge” ma teraz zastosowanie tylko do ustawień w tmpfiles.d/, które mają jawnie ustawioną flagę „$”. Operacja „--purge” również wymaga teraz określenia przynajmniej jednego pliku z katalogu tmpfiles.d/. Dla ciągów znaków typu „L” dodano flagę „?”, gdy jest określona, ​​dowiązanie symboliczne zostanie utworzone tylko wtedy, gdy plik docelowy istnieje.
  • W menedżerze usług i powiązanych narzędziach kod śledzenia procesu jest nadal konwertowany w celu użycia PIDFD zamiast PID. PIDFD jest powiązany z konkretnym procesem i nie ulega zmianie, natomiast PID może zostać powiązany z innym procesem po zakończeniu bieżącego procesu powiązanego z tym PID.
  • Dla usług istnieje teraz możliwość określenia wartości „debug” w parametrze „RestartMode”, w którym nieudana usługa zostanie uruchomiona ponownie z włączonym trybem debugowania (ustawiona zmienna środowiskowa DEBUG_INVOCATION=1), a wartość LogLevelMax zostanie tymczasowo podniesiony do poziomu debugowania.
  • Procedura obsługi PID 1 ma możliwość wczytania reguł dla modułu LSM IPE (Integrity Policy Enforcement), które definiują politykę integralności dla całego systemu (jakie operacje są dozwolone i w jaki sposób należy weryfikować autentyczność komponentów).
  • Do plików jednostkowych „.timer” dodana została opcja „OdłóżReaktywację”, która pozwala na pominięcie kolejnej aktywacji timera, jeżeli od ostatniej aktywacji usługa nie zakończyła jeszcze swojej realizacji.
  • W parametrze pliku jednostki PrivateUsers można teraz określić wartość „tożsamości”, aby umożliwić mapowanie identyfikatorów użytkowników podczas tworzenia przestrzeni nazw użytkowników.
  • Dodano obsługę wartości „rozłączony” do parametru pliku jednostki PrivateTmp, który będzie używał oddzielnych instancji tmpfs dla katalogów /tmp/ i /var/tmp/.
  • Do parametru pliku jednostki ProtectControlGroups dodano obsługę nowych trybów „prywatnych” i „ścisłych”. Po ustawieniu tworzona jest nowa przestrzeń nazw cgroup dla usługi i podłączany jest cgroupfs. Gdy ustawiona jest opcja „strict”, cgroupfs jest montowany w trybie tylko do odczytu.
  • Parametry StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory i ConfigurationDirectory umożliwiają użycie flagi „:ro” w celu ograniczenia dostępu do odpowiednich katalogów do trybu tylko do odczytu.
  • Dodano obsługę wartości „firmware” do parametru wiersza poleceń jądra „systemd.machine_id”, w którym identyfikator systemowy (identyfikator maszyny) będzie obliczany na podstawie UUID z SMBIOS/DeviceTree.
  • Добавлена поддержка системных вызовов mseal(), listmount() и statmount(), появившихся в недавних выпусках ядра Linux.
  • Narzędzia Resolctl, timedatectl i systemd-inhibit obsługują teraz interaktywną autoryzację przy użyciu narzędzia Polkit.
  • Narzędzie systemctl dodało możliwość użycia flagi „--now” w poleceniu „reenable”.
  • Do narzędzia systemd-mount dodano opcję „--json” dla danych wyjściowych w formacie JSON (na przykład, jeśli określono je razem z „--list-devices”, lista urządzeń będzie generowana w formacie JSON).
  • Do narzędzia „localectl” dodano opcje „-l” i „--full”, aby wyłączyć przycinanie długich linii podczas wydruku.
  • W pliku Sleep.conf dodano opcję HibernateOnACPower, która pozwala opóźnić przejście w tryb uśpienia do czasu odłączenia urządzenia od stacjonarnego źródła zasilania.
  • W systemd-sysusers do linii „u” dodano obsługę modyfikatora „!”, za pomocą którego można tworzyć całkowicie zablokowane konta użytkowników (poprzednio do blokowania użytkownika używano ustawienia nieprawidłowego hasła, co np. nie doprowadziło do zablokowania podczas uwierzytelniania klucza w SSH).
  • Systemd-coredump dodaje opcję „EnterNamespace”, która umożliwia dostęp do przestrzeni punktów podłączenia wszelkich procesów, które uległy awarii, w celu uzyskania ich symboli debugowania. W praktyce opcja może być przydatna do organizowania śledzenia plików podstawowych z aplikacji działających w izolowanych kontenerach.
  • systemd-logind obejmuje przetwarzanie kombinacji Ctrl-Alt-Shift-Esc w celu wysłania sygnału org.freedesktop.login1.SecureAttentionKey do komponentów środowiska użytkownika z żądaniem wyświetlenia okna dialogowego bezpiecznego logowania. Zaimplementowano ustawienie „DesignatedMaintenanceTime”, aby automatycznie planować zakończenie pracy o określonej godzinie. Analogicznie do obsługi urządzeń DRM i evdev, dodano obsługę konfiguracji dostępu nieuprzywilejowanych użytkowników do urządzeń hidraw (kontrolerów gier i joysticków).
  • systemd-machined obsługuje teraz logowanie klientów bez uprawnień. maszyna wirtualna i kontenerów. Dostęp do funkcjonalności systemd-machine jest zapewniony za pośrednictwem interfejsu API Varlink, oprócz D-Bus.
  • Do pliku konfiguracyjnego networkd.conf dodano nową sekcję „[IPv6AddressLabel]”, aby skonfigurować etykiety i prefiksy dla adresów IPv6
  • Dodano opcję „--stdin” do polecenia „networkctl edit”, aby pobrać zawartość pliku ze standardowego strumienia. Dodano obsługę edytowania i wyświetlania plików .netdev poprzez określenie interfejsu sieciowego dla poleceń „networkctl edit” i „networkctl cat”. Dodano opcję „--no-ask-password”, aby wyłączyć interaktywną autoryzację.
  • Do narzędzi ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart i systemd-sbsign dodano opcję „--certificate-source”, aby załadować certyfikat X.509 za pośrednictwem dostawcy OpenSSL zamiast bezpośrednio z plik.
  • systemd-boot dodaje możliwość używania przycisków głośności do poruszania się w górę i w dół menu rozruchu, co może być przydatne na urządzeniach takich jak smartfony. Do narzędzia bootctl dodano obsługę instalowania bazy danych UEFI Secure Boot w formacie ESL(db/dbx/…) dla systemd-boot.
  • Dodano opcję „--list-invocation” do journalctl, aby wyświetlić listę wywołań jednostek i opcję „--invocation” („-I”), aby wyświetlić logi powiązane tylko z konkretnym wywołaniem.
  • systemd-nspawn dodaje obsługę nieuprzywilejowanego używania FUSE (system plików w przestrzeni użytkownika) w kontenerach. W przypadku użycia opcji „--bind-user” klucze SSH użytkownika wymagane do uzyskania dostępu przez SSH są przekazywane do kontenera.
  • libsystemd dodał nowy interfejs programistyczny „sd-json”, który wykorzystuje format JSON, a także interfejs „sd-varlink”, który wykorzystuje IPC Varlink.
  • Zalecana podstawowa wersja jądra została zaktualizowana do wersji 5.4, utworzonej w 2019 roku. W przyszłym roku planują zaprzestać wspierania starszych jąder i oznaczyć wersję 5.4 jako minimalną obsługiwaną wersję podstawową.
  • Obsługa cgroups v1 jest przestarzała i jest domyślnie wyłączona (aby ją włączyć, musisz określić SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 w wierszu poleceń jądra, a także włączyć ją w ustawieniach systemowych). Następna wersja systemd 258 planuje całkowicie usunąć kod związany z cgroups v1. Wersja Systemd 258 ma również usunąć obsługę skryptów usług Systemu V.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster