Dostępna jest wersja systemd 245 z implementacją przenośnych katalogów domowych.

Po trzech miesiącach prac rozwojowych zaprezentowano premiera menedżera systemowego systemd 245. W nowej wersji wprowadzono nowe komponenty systemd-homed i systemd-repart, dodano wsparcie dla przenośnych profili użytkowników w formacie JSON, zapewniono możliwość definiowania przestrzeni nazw w systemd-journald, dodano wsparcie dla mechanizmu „pidfd”. Całkowicie przebudowano stronę projektu, na którym zgromadzono większość dostępnej dokumentacji oraz zaproponowano nowe logo.

Dostępna jest wersja systemd 245 z implementacją przenośnych katalogów domowych.

Podstawowe zmiany:

  • Dodano usługę systemd-homed, która zarządza przenośnymi katalogami domowymi dostarczanymi w postaci montowalnego obrazu, w którym dane są szyfrowane. Systemd-homed umożliwia tworzenie niezależnych środowisk dla danych użytkownika, które można przenosić między różnymi systemami, nie martwiąc się o synchronizację identyfikatorów i prywatność. Parametry danych uwierzytelniających użytkownika są powiązane z katalogiem domowym, a nie z ustawieniami systemowymi — zamiast /etc/passwd, /etc/group i /etc/shadow używany jest profil w formacie YANG. Szczegóły w poprzednim ogłoszeniu systemd-homed.
  • Dodano towarzyszący komponent systemd-homed „userdb” („systemd-userdb”), który tłumaczy konta UNIX/glibc NSS na wpisy JSON i zapewnia ujednolicone API Varlink do zapytań i przeszukiwania wpisów. W powiązanym z katalogiem domowym profilu JSON określone są parametry potrzebne do funkcjonowania użytkownika, w tym dane o imieniu, haszu hasła, kluczach do szyfrowania, kwotach i dostępnych zasobach. Profil może być podpisany cyfrowo, przechowywany na zewnętrznym tokenie Yubikey. Do zarządzania profilami zaproponowano narzędzie „userdbctl”. Wsparcie dla profili w formacie JSON dodano do różnych komponentów systemd, w tym systemd-logind oraz pam-systemd, pozwalających na organizację uwierzytelniania, logowania, ustawiania zmiennych środowiskowych, tworzenia sesji, ustalania limitów dla użytkowników przenośnych katalogów itd. W przyszłości planowane jest wprowadzenie możliwości generowania profili JSON przez framework sssd z przechowywaniem ustawień użytkowników w LDAP.
  • Dodano nowe narzędzie „systemd-repart”, które ma na celu podział tablic partycji dyskowych w formacie GPT. Struktura partycji jest określana w formie deklaratywnej za pomocą plików, które opisują, jakie partycje powinny lub mogą istnieć. Przy każdym uruchomieniu faktyczna tablica partycji jest porównywana z tymi plikami, po czym dodawane są brakujące partycje lub, jeśli określony w ustawieniach względny lub absolutny rozmiar się nie zgadza, zwiększany jest rozmiar istniejących. Dozwolone są tylko inkrementalne zmiany, tj. usunięcie i zmniejszenie rozmiaru nie jest możliwe, partycje mogą być jedynie dodawane i zwiększane.
    Narzędzie to jest głównie przeznaczone do uruchamiania z initrd i automatycznie określa dysk, na którym znajduje się główna partycja, co nie wymaga dodatkowej konfiguracji, poza plikami z definicją zmian.

    W praktyce systemd-repart może okazać się przydatne dla obrazów systemu operacyjnego, które pierwotnie mogą być dostarczane w minimalnej formie, a po pierwszym uruchomieniu rozszerzać się do rozmiaru dostępnego urządzenia blokowego lub uzyskiwać dodatkowe partycje (np. partycja główna może się rozszerzać, aby obejmować cały dysk lub po pierwszym uruchomieniu może być tworzona partycja swap lub /home). Innym zastosowaniem mogą być konfiguracje z dwoma zamieniającymi się partycjami — pierwotnie może być dostarczana tylko pierwsza partycja, a druga może być tworzona przy pierwszym uruchomieniu.

  • Wprowadzono możliwość uruchamiania wielu instancji systemd-journald, z których każda prowadzi logi w swoim przestrzeni nazw. Oprócz podstawowego systemd-journald.service w katalogu .service zaproponowano szablon do tworzenia dodatkowych instancji, związanych z ich przestrzeniami nazw za pomocą dyrektywy „LogNamespace”. Każda przestrzeń nazw logów jest obsługiwana przez osobny proces działający w tle z własnym zestawem ustawień i limitów. Zaoferowana funkcjonalność może okazać się przydatna do rozkładu obciążenia w przypadku dużej ilości logów lub do zwiększenia izolacji aplikacji. W journalctl dodano opcję „—namespace”, ograniczającą zapytanie tylko do określonej przestrzeni nazw.
  • W systemd-udevd i innych komponentach systemd dodano obsługę mechanizmu przypisywania alternatywnych nazw interfejsów sieciowych, pozwalającego na jednoczesne stosowanie wielu nazw dla jednego interfejsu. Długość nazwy może osiągać 128 znaków (wcześniej nazwa interfejsu sieciowego była ograniczona do 16 znaków). Domyślnie systemd-udevd przypisuje teraz każdemu interfejsowi sieciowemu wszystkie warianty nazw generowane przez obsługiwane schematy nazewnictwa. To zachowanie można zmienić poprzez nowe ustawienia AlternativeName i AlternativeNamesPolicy w plikach .link. W systemd-nspawn zaimplementowano generowanie alternatywnych nazw z pełną nazwą kontenera dla tworzonych po stronie hosta łączy veth.
  • W API sd-event.h dodano obsługę subsystemu jądra Linux „pidfd” do obsługi sytuacji ponownego wykorzystania PID (pidfd jest powiązany z konkretnym procesem i nie zmienia się, podczas gdy PID może zostać przypisany do innego procesu po zakończeniu bieżącego procesu związanego z tym PID). Wszystkie komponenty systemd, z wyjątkiem PID 1, przeszły na korzystanie z pidfds, jeśli dany subsystem jest obsługiwany przez bieżące jądro.
  • W systemd-logind za pomocą PolicyKit zapewniono sprawdzanie dostępu do operacji zmiany wirtualnego terminala. Domyślnie uprawnienia do zmiany aktywnego terminala przyznawane są tylko użytkownikom, którzy przynajmniej raz zainicjowali sesję na lokalnym wirtualnym terminalu.
  • Aby uprościć tworzenie obrazów initrd z systemd, obsługiwacz PID 1 teraz określa, czy jest używany w initrd i w takim przypadku automatycznie ładuje initrd.target zamiast default.target. Przy takim podejściu obrazy initrd i głównego systemu mogą różnić się tylko obecnością pliku /etc/initrd-release.
  • Dodano nowy parametr wiersza poleceń jądra — „systemd.cpu_affinity”, równoważny opcji CPUAffinity w /etc/systemd/system.conf i pozwalający skonfigurować maskę przypisania do CPU dla PID 1 i innych procesów.
  • Zapewniono ponowne ładowanie bazy SELinux wraz z ponownym uruchomieniem PID 1 przez polecenia, takie jak „systemctl daemon-reload”.
  • W obsługiwaczu PID 1 dodano ustawienie „systemd.show-status=error”, po jego ustawieniu na konsolę wyświetlane są tylko komunikaty o błędach i istotnych opóźnieniach podczas uruchamiania.
  • W systemd-sysusers dodano obsługę tworzenia użytkowników z nazwą głównej grupy różniącą się od nazwy użytkownika.
  • W systemd-growfs dodano wsparcie dla rozszerzania partycji XFS za pomocą opcji montowania x-systemd.growfs w /etc/fstab, obok wcześniej obsługiwanych partycji Ext4 i Btrfs.
  • W /etc/crypttab dodano opcję x-initrd.attach do określenia zaszyfrowanej partycji, która została już odblokowana na etapie initrd.
  • W systemd-cryptsetup dodano obsługę (opcja pkcs11-uri w /etc/crypttab) odblokowywania zaszyfrowanych partycji przy użyciu kart smart PKCS#11, na przykład do przypisania szyfrowania partycji do kluczy YubiKeys.
  • W /etc/fstab dodano nowe opcje montowania «x-systemd.required-by» i «x-systemd.wanted-by» do jawnej konfiguracji jednostek definiujących operacje montowania, które są wywoływane zamiast local-fs.target i remote-fs.target.
  • Dodano nową opcję izolacji piaskownicy dla usług — ProtectClock, która ogranicza zapisywanie w systemowych zegarach (dostęp blokowany na poziomie /dev/rtc, wywołań systemowych i uprawnień CAP_SYS_TIME/CAP_WAKE_ALARM).
  • W specyfikacji Odkrywalne partycje i systemd-gpt-auto-generator dodano definicję partycji
    /var и /var/tmp.
  • W 'systemctl list-unit-files' przy wyświetlaniu listy jednostek pojawiła się nowa kolumna, która odzwierciedla stan włączenia proponowany w standardowych ustawieniach producenta dla tego typu jednostek.
  • W 'systemctl' dodano opcję '—with-dependencies', przy której wykonywanie poleceń takich jak 'systemctl status' i 'systemctl cat' wyświetli nie tylko wszystkie odpowiadające jednostki, ale także jednostki, od których są zależne.
  • W systemd-networkd w konfiguracji qdisc dodano możliwość dostosowywania parametrów TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queuing), CoDel (Controlled-Delay Active Queue Management) oraz FQ (Fair Queue).
  • W systemd-networkd dodano wsparcie dla urządzeń sieciowych IFB (Intermediate Functional Block).
  • W systemd-networkd w sekcji [Route] zaimplementowano parametr MultiPathRoute do konfigurowania tras multi-path.
  • W systemd-networkd dla klienta DHCPv4 dodano opcję SendDecline, przy której po odebraniu odpowiedzi DHCP z adresem przeprowadzana jest weryfikacja duplikatów adresu, a w przypadku wykrycia konfliktu adresów przyznany adres jest odrzucany. Dla klienta DHCPv4 dodano również opcję RouteMTUBytes, która umożliwia określenie rozmiaru MTU dla tras generowanych z przypisania adresów IP (leases).
  • Konfiguracja PrefixRoute w sekcji '[Address]' plików '.network' została uznana za przestarzałą. Na jej miejsce wprowadzono konfigurację 'AddPrefixRoute', mającą odwrotne znaczenie.
  • W plikach .network w ustawieniu Gateway z sekcji „[Route]” dodano wsparcie dla nowej wartości „_dhcp”, przy której statyczna trasa jest wybierana na podstawie bramy skonfigurowanej za pomocą DHCP.
  • W plikach .network w sekcji „[RoutingPolicyRule]” pojawiły się ustawienia
    User i SuppressPrefixLength do ustalenia trasowania od źródła (source routing) na podstawie zakresów UID i rozmiaru prefiksu.
  • W networkctl w poleceniu „status” dodano możliwość wyświetlania logów powiązanych z każdym interfejsem sieciowym.
  • W systemd-networkd-wait-online dodano wsparcie dla ustalenia maksymalnego czasu oczekiwania na przejście interfejsu do stanu roboczego i oczekiwania na zniknięcie interfejsu.
  • Zakończono przetwarzanie plików .link i .network z pustą lub skomentowaną sekcją „[Match]”.
  • W plikach .link i .network w sekcji „[Match]” dodano ustawienie „PermanentMACAddress” do weryfikacji stałego adresu MAC urządzeń w przypadku korzystania z wylosowanego przypadkowego MAC.
  • Sekcja „[TrafficControlQueueingDiscipline]” w plikach .network została przemianowana na „[NetworkEmulator]”, a z nazw związanych ustawień usunięto prefiks „NetworkEmulator”.
  • W systemd-resolved dla DNS-over-TLS dodano wsparcie dla weryfikacji SNI.

Ź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