systemd 245 dostępny z implementacją przenośnego katalogu domowego

Po trzech miesiącach rozwoju przedstawione wydanie menedżera systemu systemd 245. W nowej wersji dodano nowe komponenty systemd-homed i systemd-repart, dodano obsługę przenośnych profili użytkowników w formacie JSON, zapewniono możliwość definiowania przestrzeni nazw w systemd-journald oraz dodano obsługę mechanizmu „pidfd” . Całkowicie przeprojektowany Strona projektu, która gromadzi większość dostępnej dokumentacji i proponuje nowe logo.

systemd 245 dostępny z implementacją przenośnego katalogu domowego

Głównym zmiany:

  • Dodana usługa systemowy, który zapewnia zarządzanie przenośnymi katalogami domowymi, dostarczanymi w postaci zamontowanego pliku obrazu, w którym dane są zaszyfrowane. Systemd-homed umożliwia tworzenie samodzielnych środowisk dla danych użytkowników, które można przesyłać pomiędzy różnymi systemami bez obawy o synchronizację identyfikatorów i poufność. Poświadczenia 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 JSON. Więcej szczegółów znajdziesz w ostatnie ogłoszenie systemowy.
  • Dodano komponent towarzyszący systemd-homed „baza użytkowników” („systemd-userdb”), który tłumaczy konta NSS UNIX/glibc na rekordy JSON i zapewnia ujednolicony interfejs API Varlink do wykonywania zapytań i iteracji po rekordach. Profil JSON powiązany z katalogiem domowym określa parametry wymagane do pracy użytkownika, w tym nazwę użytkownika, skrót hasła, klucze szyfrowania, przydziały i udostępnione zasoby. Profil może być poświadczony podpisem cyfrowym przechowywanym na zewnętrznym tokenie Yubikey. Do zarządzania profilami proponuje się narzędzie „userdbctl”. Do różnych komponentów systemowych, w tym systemd-logind i pam-systemd, dodano obsługę profili JSON, umożliwiając użytkownikom przenośnych katalogów uwierzytelnianie, logowanie, ustawianie zmiennych środowiskowych, tworzenie sesji, ustawianie limitów itp. Oczekuje się, że w przyszłości framework sssd będzie mógł generować profile JSON z ustawieniami użytkownika przechowywanymi w LDAP.
  • Dodano nowe narzędzie „systemd-repart”, przeznaczone do ponownego partycjonowania tabel partycji dysku w formacie GPT. Struktura partycji jest definiowana w formie deklaratywnej poprzez pliki opisujące, które partycje powinny lub mogą istnieć. Przy każdym uruchomieniu rzeczywista tablica partycji jest porównywana z tymi plikami, po czym dodawane są brakujące partycje lub, jeśli względny lub bezwzględny rozmiar zdefiniowany w ustawieniach nie jest zgodny, zwiększany jest rozmiar istniejących. Dozwolone są jedynie zmiany przyrostowe, tj. usuwanie i zmniejszanie rozmiaru nie jest możliwe, partycje można jedynie dodawać i powiększać.
    Narzędzie przeznaczone jest do uruchomienia z poziomu initrd i automatycznie wykrywa dysk, na którym znajduje się partycja root, która nie wymaga dodatkowej konfiguracji, za wyjątkiem plików z definicją zmian.

    W praktyce systemd-repart może być przydatny w przypadku obrazów systemów operacyjnych, które początkowo mogą być dostarczane w minimalnej formie, a po pierwszym uruchomieniu można je rozszerzyć do rozmiarów istniejącego urządzenia blokowego lub uzupełnić o dodatkowe partycje (np. partycję można rozszerzyć tak, aby objęła cały dysk lub po pierwszym uruchomieniu utwórz partycję wymiany lub /home). Innym zastosowaniem byłyby konfiguracje z dwiema obracającymi się partycjami - początkowo może być dostarczona tylko pierwsza partycja, a druga zostałaby utworzona przy pierwszym uruchomieniu.

  • Możliwe jest teraz uruchomienie wielu instancji systemd-journald, z których każda przechowuje dzienniki w swojej własnej przestrzeni nazw. Oprócz głównego systemd-journald.service, katalog .service oferuje szablon do tworzenia dodatkowych instancji powiązanych z ich przestrzeniami nazw za pomocą dyrektywy „LogNamespace”. Każda przestrzeń nazw dziennika jest obsługiwana przez oddzielny proces w tle z własnym zestawem ustawień i ograniczeń. Proponowana funkcja może być przydatna do równoważenia obciążenia przy dużej liczbie logów lub do poprawy izolacji aplikacji. Dodano opcję „--namespace” do journalctl, aby ograniczyć zapytanie tylko do określonej przestrzeni nazw.
  • Systemd-udevd i inne komponenty systemd dodały obsługę mechanizmu przypisywania alternatywnych nazw do interfejsów sieciowych, umożliwiając jednoczesne używanie wielu nazw dla jednego interfejsu. Nazwa może mieć maksymalnie 128 znaków (poprzednio nazwa interfejsu sieciowego była ograniczona do 16 znaków). Domyślnie systemd-udevd przypisuje teraz każdemu interfejsowi sieciowemu wszystkie nazwy wariantów wygenerowane przez obsługiwane schematy nazewnictwa. To zachowanie można zmienić za pomocą nowych ustawień AlternativeName i AlternativeNamesPolicy w plikach .link. systemd-nspawn implementuje generowanie alternatywnych nazw z pełną nazwą kontenera dla łączy V utworzonych po stronie hosta.
  • API sd-event.h dodaje obsługę podsystemu jądra Linuksa „pidfd”, aby obsłużyć sytuację ponownego użycia PID (pidfd jest powiązany z konkretnym procesem i nie ulega zmianie, natomiast PID może być powiązany z innym procesem po bieżącym procesie powiązany z nim opuszcza ten PID). Wszystkie komponenty systemd z wyjątkiem PID 1 zostały przekonwertowane do używania pidfds, jeśli podsystem jest obsługiwany przez bieżące jądro.
  • systemd-logind zapewnia kontrolę dostępu dla operacji zmiany terminala wirtualnego za pośrednictwem PolicyKit. Domyślnie uprawnienia do zmiany aktywnego terminala nadawane są tylko użytkownikom, którzy przynajmniej raz zainicjowali sesję na lokalnym terminalu wirtualnym.
  • Aby ułatwić tworzenie obrazów initrd za pomocą systemd, moduł obsługi PID 1 wykrywa teraz, czy używany jest initrd i w tym przypadku automatycznie ładuje initrd.target zamiast default.target. Przy takim podejściu obrazy systemu initrd i główny mogą się różnić jedynie obecnością pliku /etc/initrd-release.
  • Dodano nowy parametr wiersza poleceń jądra - „systemd.cpu_affinity”, odpowiednik opcji CPUAffinity w pliku /etc/systemd/system.conf i umożliwiający skonfigurowanie maski koligacji procesora dla PID 1 i innych procesów.
  • Włączono ponowne ładowanie bazy danych SELinux wraz z ponownym uruchomieniem PID 1 za pomocą poleceń takich jak „systemctl daemon-reload”.
  • Do procedury obsługi PID 1 dodano ustawienie „systemd.show-status=error”. Po ustawieniu na konsoli wyświetlane są tylko komunikaty o błędach i znaczne opóźnienia podczas ładowania.
  • systemd-sysusers dodał obsługę tworzenia użytkowników z nazwą grupy podstawowej inną niż nazwa użytkownika.
  • systemd-growfs wprowadza obsługę rozszerzania partycji XFS poprzez opcję montowania x-systemd.growfs w /etc/fstab, oprócz wcześniej obsługiwanego rozszerzania partycji za pomocą Ext4 i Btrfs.
  • Dodano opcję x-initrd.attach do /etc/crypttab, aby zdefiniować zaszyfrowaną partycję już odblokowaną na etapie initrd.
  • systemd-cryptsetup dodał obsługę (opcja pkcs11-uri w /etc/crypttab) odblokowywania zaszyfrowanych partycji przy użyciu kart inteligentnych PKCS#11, na przykład w celu dołączenia szyfrowania partycji do YubiKeys.
  • Do pliku /etc/fstab dodano nowe opcje montowania „x-systemd.required-by” i „x-systemd.wanted-by”, aby jawnie skonfigurować jednostki definiujące wywoływanie operacji montowania zamiast local-fs.target i Remote -fs.cel.
  • Dodana została nowa opcja sandboxingu usługi - ProtectClock, która ogranicza zapis do zegara systemowego (blokada dostępu na poziomie /dev/rtc, wywołań systemowych oraz uprawnień CAP_SYS_TIME/CAP_WAKE_ALARM).
  • Do specyfikacji Wykrywalne partycje i systemd-gpt-auto-generator dodano wykrywanie partycji
    /var i /var/tmp.

  • W „systemctl list-unit-files” podczas wyświetlania listy jednostek pojawiła się nowa kolumna odzwierciedlająca stan włączenia oferowany w ustawieniach fabrycznych producenta dla tego typu jednostek.
  • Do „systemctl” dodano opcję „-with-dependents”. Po zainstalowaniu polecenia takie jak „systemctl status” i „systemctl cat” wyświetlą nie tylko wszystkie odpowiadające im jednostki, ale także jednostki, od których zależą.
  • W systemd-networkd konfiguracja qdisc dodała możliwość konfiguracji parametrów TBF (Token Bucket Filter), SFQ (Stochastic Fairness Queue), CoDel (Controlled-Delay Active Queue Management) i FQ (Fair Queue).
  • systemd-networkd dodał obsługę urządzeń sieciowych IFB (Pośredni blok funkcjonalny).
  • Systemd-networkd implementuje parametr MultiPathRoute w sekcji [Route], aby skonfigurować trasy wielościeżkowe.
  • W systemd-networkd dla klienta DHCPv4 dodano opcję SendDecline, gdy jest określona, ​​po otrzymaniu odpowiedzi DHCP z adresem następuje sprawdzenie duplikatu adresu i w przypadku wykrycia konfliktu adresów wydany adres jest odrzucany. Do klienta DHCPv4 dodano także opcję RouteMTUBytes, umożliwiającą określenie rozmiaru MTU dla tras generowanych z powiązań adresów IP (dzierżaw).
  • Ustawienie PrefixRoute w sekcji [Adres] plików .network jest przestarzałe. Zostało zastąpione ustawieniem „AddPrefixRoute”, które ma odwrotne znaczenie.
  • W plikach .network dodano obsługę nowej wartości „_dhcp” do ustawienia bramy w sekcji „[Route]”. Po ustawieniu wybierana jest trasa statyczna na podstawie bramy skonfigurowanej przez DHCP.
  • Ustawienia pojawiły się w plikach .network w sekcji „[RoutingPolicyRule]”.
    User i SuppressPrefixLength, aby określić routing źródłowy na podstawie zakresów UID i rozmiaru prefiksu.

  • W networkctl polecenie „status” umożliwia wyświetlenie logów w odniesieniu do każdego interfejsu sieciowego.
  • systemd-networkd-wait-online dodaje obsługę ustawiania maksymalnego czasu oczekiwania na uruchomienie interfejsu i oczekiwania na jego wyłączenie.
  • Zatrzymano przetwarzanie plików .link i .network z pustą lub skomentowaną sekcją „[Dopasuj]”.
  • W plikach .link i .network w sekcji „[Match]” dodano opcję „PermanentMACAddress”, pozwalającą na sprawdzenie stałego adresu MAC urządzeń w przypadku korzystania z wygenerowanego losowo MAC.
  • Nazwa sekcji „[TrafficControlQueueingDiscipline]” w plikach .network została zmieniona na „[NetworkEmulator]”, a z nazw powiązanych ustawień usunięto przedrostek „NetworkEmulator”.
  • systemd-resolved dla DNS-over-TLS dodaje obsługę sprawdzania SNI.

Źródło: opennet.ru

Dodaj komentarz