systemd 259: obsługa Musl, wzmocnienie run0 i pożegnanie z Systemem V

Kluczowe punkty:
  • Częściowe wsparcie dla biblioteki Musl libc (wymaga ręcznej konfiguracji w Meson).
  • run0 --empower pozwala na wykonywanie akcji uprzywilejowanych bez zmiany UID użytkownika.
  • Potwierdzono wycofanie skryptów Systemu V i zwiększono wymagania (Kernel 5.10+).
  • libsystemd ładuje teraz biblioteki zewnętrzne za pomocą dlopen() w celu zmniejszenia zależności.
  • Domyślnie dziennik jest teraz przechowywany w trybie „trwałym”.

systemd

Po nieco ponad trzech miesiącach prac rozwojowych, uruchomienie nowa wersja Wiśniewska 259. Aktualizacja wprowadza zmiany w architekturze systemu, podkreślając otwartość na alternatywne biblioteki standardowe, bardziej rygorystyczne zarządzanie uprawnieniami i surowsze wymagania techniczne dla przyszłych wersji.

Jednym z najczęściej omawianych ruchów w tym cyklu jest przejście na większą modułowość i eliminacja zależności od starszych systemów, co toruje drogę ekosystemowi Linux, który zdecydowanie odchodzi od standardów poprzednich dekad.

Główne nowe cechy Systemd 259

Nowa wersja systemd 259 wyróżnia się tym, że pierwsza wersja dodająca częściową zgodność z Musl, popularna biblioteka standardowa języka C w lekkich dystrybucjach i środowiskach wbudowanych. Ta integracja Zarządza się nim za pomocą opcji libc w systemie kompilacji Meson. Ponieważ jednak Musl nie implementuje funkcjonalności NSS (Name Service Switch), kilka komponentów systemd pozostaje wyłączonych w tej konfiguracji.

Wśród azauważalne braki podczas kompilacji z Musl Znaleziono nss-systemd, nss-resolve, systemd-homed, systemd-userdbd i parametr DynamicUserCo więcej, uruchomienie systemd-nspawn bez uprawnień w ramach tej biblioteki jest niemożliwe. Twórcy ostrzegają, że utrzymanie tej obsługi w przyszłych wersjach będzie zależało od zapotrzebowania społeczności i stabilności wszelkich dodatkowych warstw kompatybilności, które zostaną opracowane.

Kolejną nową funkcją nowej wersji jest w narzędziu run0, zaprojektowany jako nowoczesna i bezpieczna alternatywa dla sudo, która otrzymała nowa opcja – wzmocnienie. Ta funkcja Umożliwia logowanie z podwyższonymi uprawnieniami. bez konieczności zmiany identyfikatora użytkownika (UID) na root.

Poza tym, zamiast delegować całkowitą kontrolę poprzez przełączanie użytkowników, –empower używa wskaźników możliwości jądra, takich jak CAP_SYS_ADMIN, udzielać ściśle niezbędnych zezwoleń do wykonywania uprzywilejowanych wywołań systemowych. Ponadto powstałe procesy są integrowane w określoną grupę, która przyznaje im dostęp do akcji Polkit, co zapewnia bardziej solidne rozdzielenie uprawnień niż w tradycyjnym modelu sudo.

Koniec pewnej ery: pożegnanie z Systemem V i nowe wymagania

systemd 259 oznacza początek końca zgodność z Skrypty usług Systemu VZapowiedziano, że w następnej wersji starsze komponenty, takie jak systemd-sysv-generator, systemd-rc-local-generator i systemd-sysv-install zostaną trwale usunięte.

Oprócz oczyszczenia starego kodu, minimalne wymagania programowe dla ekosystemu systemd zostały znacząco podniesione:

  • Jądro Linux: Wersja minimalna 5.10.
  • Biblioteka Glibc: 2.34.
  • OpenSSL: 3.0.0.
  • Util-linux: 2.37.
  • Inne: Python 3.9.0, cryptsetup 2.4.0 i libseccomp 2.4.0.

Modułowość i dynamiczne ładowanie w libsystemd

Como część inicjatywy mającej na celu zmniejszenie zależności bezpośrednio przy uruchomieniu, libsystemd teraz korzysta z dynamicznego ładowania za pomocą dlopen() W przypadku bibliotek takich jak libacl, libblkid, libseccomp, libselinux i libmount, system załaduje je do pamięci tylko wtedy, gdy ich specyficzne funkcje będą potrzebne procesowi, optymalizując wykorzystanie zasobów. Dodatkowo, funkcjonalność libcap została zintegrowana bezpośrednio z libsystemd, upraszczając łańcuch zależności.

El Obsługa dziennika zmieniła swoją domyślną konfigurację: tryb przechowywania dziennika (Czasopismo) zmiany z „automatycznego” na „trwały”niezależnie od tego, czy katalog /var/log/journal istniał wcześniej.

W dziedzinie sieci i wirtualizacji:

  • systemd-networkd i systemd-nspawn: Usunięto obsługę reguł NAT przy użyciu iptables, pozostawiając nftables jako jedyną kompatybilną opcję.
  • rozwiązany przez systemd: Teraz możliwe jest korzystanie z lokalnych haków (hooks) w /run/systemd/resolve.hook/ w celu ingerencji w żądania rozpoznawania nazw.
  • systemd-importd: Logika pracy z plikami TAR została natywnie zintegrowana. Co więcej, zarówno `importd`, jak i `machined` można teraz uruchamiać na poziomie użytkownika, co umożliwia zarządzanie obrazami w lokalnym katalogu użytkownika (`~/.local/state/machines/`).

Inne innowacje

API oparte na protokole W systemie Varlink wprowadzono ulepszenia umożliwiające dostęp do ustawień usługi i wykonywanie połączeń IPC takich jak Reload() i Reexecute(). Dla administratorów systemów włączenie właściwości OOMKills w usługach będzie bardzo przydatne, ponieważ umożliwi im śledzenie, ile razy proces został zakończony z powodu braku pamięci bezpośrednio z poziomu narzędzi systemd.

Na koniec, proces rozruchu systemu staje się nowocześniejszy dzięki usunięciu wsparcia dla TPM 1.2 w systemd-boot i skoncentrowaniu wszystkich wysiłków związanych z bezpieczeństwem na standardzie TPM 2.0.

Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się z szczegóły w poniższym linku.