systemd menedżer systemu wersja 242

[:ru]

Po dwóch miesiącach rozwoju przedstawione wydanie menedżera systemu systemd 242. Nowe funkcje obejmują obsługę tuneli L2TP, możliwość kontrolowania zachowania systemd-login przy ponownym uruchomieniu za pomocą zmiennych środowiskowych, obsługę rozszerzonych partycji rozruchowych XBOOTLDR do montowania /boot, możliwość uruchamiania z partycją root w overlayfs oraz dużą liczbę nowych ustawień dla różnych typów jednostek.

Główne zmiany:

  • systemd-networkd zapewnia obsługę tuneli L2TP;
  • sd-boot i bootctl obsługują partycje XBOOTLDR (Extended Boot Loader) zamontowane w /boot, oprócz partycji ESP zamontowanych w /efi lub /boot/efi. Jądra, ustawienia, obrazy initrd i EFI można teraz ładować zarówno z partycji ESP, jak i XBOOTLDR. Ta zmiana pozwala na użycie bootloadera sd-boot w bardziej konserwatywnych scenariuszach, gdy sam bootloader jest umieszczony w ESP, a bootowalne jądra i powiązane z nimi metadane są przenoszone do osobnej sekcji;
  • Dodano możliwość uruchamiania z opcją „systemd.volatile=overlay” przekazaną do jądra, co pozwala umieścić partycję root w overlayfs i zorganizować pracę na obrazie tylko do odczytu katalogu głównego ze zmianami zapisanymi w osobny katalog w tmpfs (zmiany w tej konfiguracji są tracone po restarcie) . Analogicznie, opcja „--volatile=overlay” została dodana do systemd-nspawn, aby używać podobnej funkcjonalności w kontenerach;
  • Dodano opcję „--oci-bundle” do systemd-nspawn, aby umożliwić korzystanie z pakietów środowiska uruchomieniowego w celu umożliwienia izolowanego uruchamiania kontenerów zgodnych ze specyfikacją Open Container Initiative (OCI). Proponuje się obsługę różnych opcji opisanych w specyfikacji OCI do użycia w wierszu poleceń i jednostkach nspawn, na przykład ustawienia „--inaccessible” i „Inaccessible” mogą być użyte do wykluczenia części systemu plików, a „- -console” dodano opcje konfiguracji standardowych strumieni wyjściowych i „—pipe”;
  • Dodano możliwość kontrolowania zachowania systemd-login poprzez zmienne środowiskowe: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU i
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Korzystając z tych zmiennych, możesz połączyć własne procedury obsługi procesu restartu (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu i
    /run/systemd/reboot-to-boot-loader-entry) lub całkowicie je wyłącz (gdy ustawione na false);

  • Dodano opcje „--boot-load-menu=” do polecenia „systemctl restart” i
    „--boot-loader-entry =", umożliwiając wybranie określonego elementu menu rozruchu lub trybu rozruchu po ponownym uruchomieniu;

  • Dodano nowe polecenie izolacji piaskownicy „RestrictSUIDSGID=”, które używa seccomp do zapobiegania tworzeniu plików z flagami SUID/SGID;
  • Zaimplementowano domyślne ograniczenia „NoNewPrivileges” i „RestrictSUIDSGID” w usługach z włączonym dynamicznym generowaniem identyfikatorów użytkowników („DynamicUser”);
  • Domyślne ustawienie MACAddressPolicy=persistent w plikach .link zostało zmienione, aby objąć więcej urządzeń. Interfejsy mostów sieciowych, tuneli (tun, tap) i łączy zagregowanych (bond) nie identyfikują się poza nazwą interfejsu sieciowego, więc ta nazwa jest obecnie używana jako podstawa do wiązania adresów MAC i IPv4. Ponadto dodano ustawienie „MACAddressPolicy=random”, które może służyć do wiązania adresów MAC i IPv4 z urządzeniami w losowej kolejności;
  • Pliki jednostek „.device” generowane przez systemd-fstab-generator nie zawierają już odpowiednich jednostek „.mount” jako zależności w sekcji „Wants=”. Samo podłączenie urządzenia nie uruchamia już automatycznie jednostki montowania, ale takie jednostki nadal mogą być uruchamiane z innych powodów, takich jak część local-fs.target lub jako zależność od innych jednostek zależnych od local-fs.target;
  • Obsługa masek („*” itp.) została dodana do poleceń „networkctl list/status/lldp” w celu odfiltrowania niektórych grup interfejsów sieciowych według części ich nazwy;
  • Zmienna środowiskowa $PIDFILE jest teraz ustawiana przy użyciu bezwzględnej ścieżki skonfigurowanej w usługach za pomocą pliku „PIDFile=;
  • Dodano publiczne serwery Cloudflare (1.1.1.1) do liczby zapasowych serwerów DNS używanych, gdy podstawowy DNS nie jest jawnie zdefiniowany. Aby zastąpić listę zapasowych serwerów DNS, możesz użyć opcji „-Ddns-servers=”;
  • Po wykryciu kontrolera urządzenia USB automatycznie uruchamiany jest nowy program obsługi usb-gadget.target (gdy system działa na urządzeniu peryferyjnym USB);
  • W przypadku plików jednostkowych zaimplementowane jest ustawienie „CPUQuotaPeriodSec=”, które określa okres czasu, względem którego mierzony jest limit czasu procesora, ustawiany za pomocą ustawienia „CPUQuota=”;
  • W przypadku plików jednostkowych zaimplementowane jest ustawienie „ProtectHostname=”, które zabrania usługom zmiany informacji o nazwie hosta, nawet jeśli mają odpowiednie uprawnienia;
  • W przypadku plików jednostek zaimplementowano ustawienie „NetworkNamespacePath=”, które umożliwia powiązanie przestrzeni nazw z usługami lub jednostkami gniazd poprzez określenie ścieżki do pliku przestrzeni nazw w pseudo-FS /proc;
  • Dodano możliwość wyłączenia podstawiania zmiennych środowiskowych dla procesów uruchamianych za pomocą ustawienia „ExecStart=” poprzez dodanie znaku „:” przed poleceniem start;
  • Dla timerów (jednostki .timera) nowe flagi "OnClockChange=" i
    „OnTimezoneChange=”, za pomocą którego można sterować wywołaniem jednostki podczas zmiany czasu systemowego lub strefy czasowej;

  • Dodano nowe ustawienia "ConditionMemory=" i "ConditionCPUs=", które określają warunki wywołania jednostki w zależności od rozmiaru pamięci i liczby rdzeni procesora (na przykład usługa wymagająca dużych zasobów może zostać uruchomiona tylko wtedy, gdy wymagana ilość dostępnej pamięci RAM);
  • Dodano nową jednostkę time-set.target, która akceptuje lokalnie ustawiony czas systemowy, bez użycia uzgadniania z zewnętrznymi dokładnymi serwerami czasu za pomocą jednostki time-sync.target. Nowa jednostka może być używana przez usługi, które potrzebują precyzji niezsynchronizowanego zegara lokalnego;
  • Dodano opcję „--show-transaction” do „systemctl start” i podobne polecenia, aby wyświetlić podsumowanie wszystkich zadań dodanych do kolejki z powodu żądanej operacji;
  • Systemd-networkd zaimplementował definicję nowego stanu, „zniewolonego”, używanego zamiast „zdegradowanego” lub „nośnika” dla interfejsów sieciowych, które są częścią zagregowanych łączy lub mostów sieciowych. Dla interfejsów pierwotnych, w przypadku problemów z jednym z łącz złożonych, dodano stan „degraded-carrier”;
  • Dodano opcję „IgnoreCarrierLoss=” do jednostek .network w celu zapisania ustawień sieciowych w przypadku awarii połączenia;
  • Dzięki ustawieniu „RequiredForOnline=” w jednostkach .network można teraz ustawić minimalny dozwolony stan łącza wymagany do przeniesienia interfejsu sieciowego do stanu „online” i uruchomienia procedury obsługi systemd-networkd-wait-online;
  • Dodano opcję „--any” do systemd-networkd-wait-online, aby czekać na gotowość dowolnego z określonych interfejsów sieciowych zamiast wszystkich, oraz opcję „--operational-state =”, aby zdefiniować stan łącza wskazujący, że gotowe;
  • Dodano ustawienia „UseAutonomousPrefix=" i „UseOnLinkPrefix=" do jednostek .network, których można używać do ignorowania prefiksów podczas uzyskiwania
    ogłoszenie z routera IPv6 (RA, Router Advertisement);

  • Dodano ustawienia „MulticastFlood=”, „NeighborSuppression=” i „Learning=” do jednostek .network w celu zmiany parametrów działania mostka sieciowego, a także ustawienie „TripleSampling=” w celu zmiany trybu POTRÓJNEGO PRÓBKOWANIA wirtualnych interfejsów CAN;
  • Dodano ustawienia „PrivateKeyFile=” i „PresharedKeyFile=” do jednostek .netdev, za pomocą których można określić klucze prywatne i współdzielone (PSK) dla interfejsów WireGuard VPN;
  • Dodano opcje same-cpu-crypt i send-from-crypt-cpus do /etc/crypttab, aby kontrolować zachowanie programu planującego podczas migracji zadań związanych z szyfrowaniem między rdzeniami procesora;
  • systemd-tmpfiles zapewnia przetwarzanie pliku blokady przed wykonaniem operacji w katalogach z plikami tymczasowymi, co pozwala na wyłączenie pracy czyszczenia przestarzałych plików na czas niektórych akcji (na przykład podczas rozpakowywania archiwum tar w / tmp, bardzo starego można otwierać pliki, których nie można usunąć przed zakończeniem akcji z nimi);
  • Polecenie „systemd-analyze cat-config” zapewnia możliwość analizy konfiguracji podzielonej na kilka plików, na przykład ustawień użytkownika i systemu, zawartości plików tmpfiles.d i sysusers.d, reguł udev itp.
  • Dodano opcję „--cursor-file=” do „journalctl”, aby określić plik do załadowania i zapisać pozycję kursora;
  • Dodano definicję hiperwizora ACRN i podsystemu WSL (Windows Subsystem for Linux) do systemd-detect-virt w celu późniejszego rozgałęzienia przy użyciu operatora warunkowego „ConditionVirtualization”;
  • Zatrzymano tworzenie dowiązań symbolicznych w /etc do systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket,
    systemd-resolved.service, zdalny-cryptsetup.target, zdalny-fs.target,
    systemd-networkd-wait-online.service i systemd-timesyncd.service. Aby utworzyć te pliki, musisz teraz uruchomić polecenie „systemctl preset-all”.

źródłoopennet.ru

[Pl]

Po dwóch miesiącach rozwoju przedstawione wydanie menedżera systemu systemd 242. Nowe funkcje obejmują obsługę tuneli L2TP, możliwość kontrolowania zachowania systemd-login przy ponownym uruchomieniu za pomocą zmiennych środowiskowych, obsługę rozszerzonych partycji rozruchowych XBOOTLDR do montowania /boot, możliwość uruchamiania z partycją root w overlayfs oraz dużą liczbę nowych ustawień dla różnych typów jednostek.

Główne zmiany:

  • systemd-networkd zapewnia obsługę tuneli L2TP;
  • sd-boot i bootctl obsługują partycje XBOOTLDR (Extended Boot Loader) zamontowane w /boot, oprócz partycji ESP zamontowanych w /efi lub /boot/efi. Jądra, ustawienia, obrazy initrd i EFI można teraz ładować zarówno z partycji ESP, jak i XBOOTLDR. Ta zmiana pozwala na użycie bootloadera sd-boot w bardziej konserwatywnych scenariuszach, gdy sam bootloader jest umieszczony w ESP, a bootowalne jądra i powiązane z nimi metadane są przenoszone do osobnej sekcji;
  • Dodano możliwość uruchamiania z opcją „systemd.volatile=overlay” przekazaną do jądra, co pozwala umieścić partycję root w overlayfs i zorganizować pracę na obrazie tylko do odczytu katalogu głównego ze zmianami zapisanymi w osobny katalog w tmpfs (zmiany w tej konfiguracji są tracone po restarcie) . Analogicznie, opcja „--volatile=overlay” została dodana do systemd-nspawn, aby używać podobnej funkcjonalności w kontenerach;
  • Dodano opcję „--oci-bundle” do systemd-nspawn, aby umożliwić korzystanie z pakietów środowiska uruchomieniowego w celu umożliwienia izolowanego uruchamiania kontenerów zgodnych ze specyfikacją Open Container Initiative (OCI). Proponuje się obsługę różnych opcji opisanych w specyfikacji OCI do użycia w wierszu poleceń i jednostkach nspawn, na przykład ustawienia „--inaccessible” i „Inaccessible” mogą być użyte do wykluczenia części systemu plików, a „- -console” dodano opcje konfiguracji standardowych strumieni wyjściowych i „—pipe”;
  • Dodano możliwość kontrolowania zachowania systemd-login poprzez zmienne środowiskowe: $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_MENU i
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. Korzystając z tych zmiennych, możesz połączyć własne procedury obsługi procesu restartu (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu i
    /run/systemd/reboot-to-boot-loader-entry) lub całkowicie je wyłącz (gdy ustawione na false);

  • Dodano opcje „--boot-load-menu=” do polecenia „systemctl restart” i
    „--boot-loader-entry =", umożliwiając wybranie określonego elementu menu rozruchu lub trybu rozruchu po ponownym uruchomieniu;

  • Dodano nowe polecenie izolacji piaskownicy „RestrictSUIDSGID=”, które używa seccomp do zapobiegania tworzeniu plików z flagami SUID/SGID;
  • Zaimplementowano domyślne ograniczenia „NoNewPrivileges” i „RestrictSUIDSGID” w usługach z włączonym dynamicznym generowaniem identyfikatorów użytkowników („DynamicUser”);
  • Domyślne ustawienie MACAddressPolicy=persistent w plikach .link zostało zmienione, aby objąć więcej urządzeń. Interfejsy mostów sieciowych, tuneli (tun, tap) i łączy zagregowanych (bond) nie identyfikują się poza nazwą interfejsu sieciowego, więc ta nazwa jest obecnie używana jako podstawa do wiązania adresów MAC i IPv4. Ponadto dodano ustawienie „MACAddressPolicy=random”, które może służyć do wiązania adresów MAC i IPv4 z urządzeniami w losowej kolejności;
  • Pliki jednostek „.device” generowane przez systemd-fstab-generator nie zawierają już odpowiednich jednostek „.mount” jako zależności w sekcji „Wants=”. Samo podłączenie urządzenia nie uruchamia już automatycznie jednostki montowania, ale takie jednostki nadal mogą być uruchamiane z innych powodów, takich jak część local-fs.target lub jako zależność od innych jednostek zależnych od local-fs.target;
  • Obsługa masek („*” itp.) została dodana do poleceń „networkctl list/status/lldp” w celu odfiltrowania niektórych grup interfejsów sieciowych według części ich nazwy;
  • Zmienna środowiskowa $PIDFILE jest teraz ustawiana przy użyciu bezwzględnej ścieżki skonfigurowanej w usługach za pomocą pliku „PIDFile=;
  • Dodano publiczne serwery Cloudflare (1.1.1.1) do liczby zapasowych serwerów DNS używanych, gdy podstawowy DNS nie jest jawnie zdefiniowany. Aby zastąpić listę zapasowych serwerów DNS, możesz użyć opcji „-Ddns-servers=”;
  • Po wykryciu kontrolera urządzenia USB automatycznie uruchamiany jest nowy program obsługi usb-gadget.target (gdy system działa na urządzeniu peryferyjnym USB);
  • W przypadku plików jednostkowych zaimplementowane jest ustawienie „CPUQuotaPeriodSec=”, które określa okres czasu, względem którego mierzony jest limit czasu procesora, ustawiany za pomocą ustawienia „CPUQuota=”;
  • W przypadku plików jednostkowych zaimplementowane jest ustawienie „ProtectHostname=”, które zabrania usługom zmiany informacji o nazwie hosta, nawet jeśli mają odpowiednie uprawnienia;
  • W przypadku plików jednostek zaimplementowano ustawienie „NetworkNamespacePath=”, które umożliwia powiązanie przestrzeni nazw z usługami lub jednostkami gniazd poprzez określenie ścieżki do pliku przestrzeni nazw w pseudo-FS /proc;
  • Dodano możliwość wyłączenia podstawiania zmiennych środowiskowych dla procesów uruchamianych za pomocą ustawienia „ExecStart=” poprzez dodanie znaku „:” przed poleceniem start;
  • Dla timerów (jednostki .timera) nowe flagi "OnClockChange=" i
    „OnTimezoneChange=”, za pomocą którego można sterować wywołaniem jednostki podczas zmiany czasu systemowego lub strefy czasowej;

  • Dodano nowe ustawienia "ConditionMemory=" i "ConditionCPUs=", które określają warunki wywołania jednostki w zależności od rozmiaru pamięci i liczby rdzeni procesora (na przykład usługa wymagająca dużych zasobów może zostać uruchomiona tylko wtedy, gdy wymagana ilość dostępnej pamięci RAM);
  • Dodano nową jednostkę time-set.target, która akceptuje lokalnie ustawiony czas systemowy, bez użycia uzgadniania z zewnętrznymi dokładnymi serwerami czasu za pomocą jednostki time-sync.target. Nowa jednostka może być używana przez usługi, które potrzebują precyzji niezsynchronizowanego zegara lokalnego;
  • Dodano opcję „--show-transaction” do „systemctl start” i podobne polecenia, aby wyświetlić podsumowanie wszystkich zadań dodanych do kolejki z powodu żądanej operacji;
  • Systemd-networkd zaimplementował definicję nowego stanu, „zniewolonego”, używanego zamiast „zdegradowanego” lub „nośnika” dla interfejsów sieciowych, które są częścią zagregowanych łączy lub mostów sieciowych. Dla interfejsów pierwotnych, w przypadku problemów z jednym z łącz złożonych, dodano stan „degraded-carrier”;
  • Dodano opcję „IgnoreCarrierLoss=” do jednostek .network w celu zapisania ustawień sieciowych w przypadku awarii połączenia;
  • Dzięki ustawieniu „RequiredForOnline=” w jednostkach .network można teraz ustawić minimalny dozwolony stan łącza wymagany do przeniesienia interfejsu sieciowego do stanu „online” i uruchomienia procedury obsługi systemd-networkd-wait-online;
  • Dodano opcję „--any” do systemd-networkd-wait-online, aby czekać na gotowość dowolnego z określonych interfejsów sieciowych zamiast wszystkich, oraz opcję „--operational-state =”, aby zdefiniować stan łącza wskazujący, że gotowe;
  • Dodano ustawienia „UseAutonomousPrefix=" i „UseOnLinkPrefix=" do jednostek .network, których można używać do ignorowania prefiksów podczas uzyskiwania
    ogłoszenie z routera IPv6 (RA, Router Advertisement);

  • Dodano ustawienia „MulticastFlood=”, „NeighborSuppression=” i „Learning=” do jednostek .network w celu zmiany parametrów działania mostka sieciowego, a także ustawienie „TripleSampling=” w celu zmiany trybu POTRÓJNEGO PRÓBKOWANIA wirtualnych interfejsów CAN;
  • Dodano ustawienia „PrivateKeyFile=” i „PresharedKeyFile=” do jednostek .netdev, za pomocą których można określić klucze prywatne i współdzielone (PSK) dla interfejsów WireGuard VPN;
  • Dodano opcje same-cpu-crypt i send-from-crypt-cpus do /etc/crypttab, aby kontrolować zachowanie programu planującego podczas migracji zadań związanych z szyfrowaniem między rdzeniami procesora;
  • systemd-tmpfiles zapewnia przetwarzanie pliku blokady przed wykonaniem operacji w katalogach z plikami tymczasowymi, co pozwala na wyłączenie pracy czyszczenia przestarzałych plików na czas niektórych akcji (na przykład podczas rozpakowywania archiwum tar w / tmp, bardzo starego można otwierać pliki, których nie można usunąć przed zakończeniem akcji z nimi);
  • Polecenie „systemd-analyze cat-config” zapewnia możliwość analizy konfiguracji podzielonej na kilka plików, na przykład ustawień użytkownika i systemu, zawartości plików tmpfiles.d i sysusers.d, reguł udev itp.
  • Dodano opcję „--cursor-file=” do „journalctl”, aby określić plik do załadowania i zapisać pozycję kursora;
  • Dodano definicję hiperwizora ACRN i podsystemu WSL (Windows Subsystem for Linux) do systemd-detect-virt w celu późniejszego rozgałęzienia przy użyciu operatora warunkowego „ConditionVirtualization”;
  • Zatrzymano tworzenie dowiązań symbolicznych w /etc do systemd-networkd.service, systemd-networkd.socket, systemd-networkd.socket,
    systemd-resolved.service, zdalny-cryptsetup.target, zdalny-fs.target,
    systemd-networkd-wait-online.service i systemd-timesyncd.service. Aby utworzyć te pliki, musisz teraz uruchomić polecenie „systemctl preset-all”.

Źródło: opennet.ru

[:]

Dodaj komentarz