gestionnaire de système systemd version 242

[: ru]

Après deux mois de développement soumis version du gestionnaire de système systemd 242. Parmi les innovations, on peut noter le support des tunnels L2TP, la possibilité de contrôler le comportement de systemd-logind au redémarrage via des variables d'environnement, le support des partitions de démarrage XBOOTLDR étendues pour le montage de /boot, la possibilité de démarrer avec une partition racine dans overlayfs, ainsi qu'un grand nombre de nouveaux paramètres pour différents types d'unités.

Les principaux changements:

  • systemd-networkd prend en charge les tunnels L2TP ;
  • sd-boot et bootctl prennent en charge les partitions XBOOTLDR (Extended Boot Loader) conçues pour être montées sur /boot, en plus des partitions ESP montées sur /efi ou /boot/efi. Les noyaux, les paramètres, les images initrd et EFI peuvent désormais être démarrés à partir des partitions ESP et XBOOTLDR. Ce changement vous permet d'utiliser le chargeur de démarrage sd-boot dans des scénarios plus conservateurs, lorsque le chargeur de démarrage lui-même est situé dans l'ESP et que les noyaux chargés et les métadonnées associées sont placés dans une section distincte ;
  • Ajout de la possibilité de démarrer avec l'option « systemd.volatile=overlay » transmise au noyau, ce qui vous permet de placer la partition racine dans overlayfs et d'organiser le travail au-dessus d'une image en lecture seule du répertoire racine avec les modifications écrites dans un répertoire séparé dans tmpfs (les modifications apportées à cette configuration sont perdues après un redémarrage) . Par analogie, systemd-nspawn a ajouté l'option « --volatile=overlay » pour utiliser des fonctionnalités similaires dans les conteneurs ;
  • systemd-nspawn a ajouté l'option "--oci-bundle" pour permettre l'utilisation de bundles d'exécution pour fournir un lancement isolé de conteneurs conformes à la spécification Open Container Initiative (OCI). Pour une utilisation dans les unités de ligne de commande et nspawn, la prise en charge de diverses options décrites dans la spécification OCI est proposée, par exemple, les options « --inaccessible » et « Inaccessible » peuvent être utilisées pour exclure des parties du système de fichiers, et le « Des options --console » ont été ajoutées pour configurer les flux de sortie standard et « -pipe » ;
  • Ajout de la possibilité de contrôler le comportement de systemd-logind via des variables d'environnement : $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU et
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. À l'aide de ces variables, vous pouvez connecter vos propres gestionnaires de processus de redémarrage (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu et
    /run/systemd/reboot-to-boot-loader-entry) ou désactivez-les complètement (si la valeur est définie sur false) ;

  • Ajout des options « -boot-load-menu = » et
    « -boot-loader-entry = », vous permettant de sélectionner un élément de menu de démarrage ou un mode de démarrage spécifique après un redémarrage ;

  • Ajout d'une nouvelle commande d'isolation sandbox « RestrictSUIDSGID= », qui utilise seccomp pour interdire la création de fichiers avec des indicateurs SUID/SGID ;
  • S'assurer que les restrictions « NoNewPrivileges » et « RestrictSUIDSGID » sont appliquées par défaut dans les services avec le mode de génération d'ID utilisateur dynamique (« DynamicUser » activé) ;
  • Le paramètre par défaut MACAddressPolicy=persistent dans les fichiers .link a été modifié pour couvrir davantage de périphériques. Les interfaces des ponts réseau, des tunnels (tun, tap) et des liens agrégés (bond) ne s'identifient que par le nom de l'interface réseau, ce nom sert donc désormais de base pour lier les adresses MAC et IPv4. De plus, le paramètre « MACAddressPolicy=random » a été ajouté, qui peut être utilisé pour lier les adresses MAC et IPv4 aux appareils dans un ordre aléatoire ;
  • Les fichiers d'unités ".device" générés via systemd-fstab-generator n'incluent plus les unités ".mount" correspondantes comme dépendances dans la section "Wants=". Le simple fait de brancher un périphérique ne lance plus automatiquement une unité à monter, mais ces unités peuvent toujours être lancées pour d'autres raisons, par exemple dans le cadre de local-fs.target ou en tant que dépendance d'autres unités qui dépendent de local-fs.target. ;
  • Ajout de la prise en charge des masques (« * », etc.) aux commandes « networkctl list/status/lldp » pour filtrer certains groupes d'interfaces réseau par une partie de leur nom ;
  • La variable d'environnement $PIDFILE est désormais définie à l'aide du chemin absolu configuré dans les services via le paramètre "PIDFile=;".
  • Des serveurs publics Cloudflare (1.1.1.1) ont été ajoutés au nombre de serveurs DNS de sauvegarde utilisés si le DNS principal n'est pas explicitement défini. Pour redéfinir la liste des serveurs DNS de sauvegarde, vous pouvez utiliser l'option « -Ddns-servers= » ;
  • Lors de la détection de la présence d'un contrôleur de périphérique USB, un nouveau gestionnaire usb-gadget.target est automatiquement lancé (lorsque le système fonctionne sur un périphérique USB) ;
  • Pour les fichiers d'unité, le paramètre « CPUQuotaPeriodSec= » ​​a été implémenté, qui détermine la période de temps par rapport à laquelle le quota de temps CPU est mesuré, défini via le paramètre « CPUQuota= » ;
  • Pour les fichiers d'unité, le paramètre « ProtectHostname = » a été implémenté, qui interdit aux services de modifier les informations sur le nom d'hôte, même s'ils disposent des autorisations appropriées ;
  • Pour les fichiers d'unité, le paramètre « NetworkNamespacePath= » a été implémenté, qui vous permet de lier un espace de noms à des services ou des unités de socket en spécifiant le chemin d'accès au fichier d'espace de noms dans le pseudo-FS /proc ;
  • Ajout de la possibilité de désactiver la substitution des variables d'environnement pour les processus lancés à l'aide du paramètre « ExecStart= » en ajoutant un caractère « : » avant la commande de démarrage ;
  • Pour les minuteries (unités .timer), nouveaux indicateurs « OnClockChange = » et
    « OnTimezoneChange= », avec lequel vous pouvez contrôler l'appel de l'unité lorsque l'heure du système ou le fuseau horaire change ;

  • Ajout de nouveaux paramètres « ConditionMemory= » et « ConditionCPUs= », qui déterminent les conditions d'appel d'une unité en fonction de la taille de la mémoire et du nombre de cœurs CPU (par exemple, un service gourmand en ressources ne peut être lancé que si la quantité requise de La RAM est disponible);
  • Ajout d'une nouvelle unité time-set.target qui accepte l'heure système définie localement, sans utiliser la réconciliation avec les serveurs de temps externes à l'aide de l'unité time-sync.target. La nouvelle unité peut être utilisée par les services qui ont besoin de la précision des horloges locales non synchronisées ;
  • L'option « --show-transaction » a été ajoutée à « systemctl start » et aux commandes similaires, lorsqu'elle est spécifiée, un résumé de tous les travaux ajoutés à la file d'attente en raison de l'opération demandée est affiché ;
  • systemd-networkd implémente la définition d'un nouvel état « asservi », utilisé à la place de « dégradé » ou « porteur » pour les interfaces réseau qui font partie de liens agrégés ou de ponts réseau. Pour les interfaces primaires, en cas de problème sur l'un des liens composites, l'état 'degraded-carrier' a été ajouté ;
  • Ajout de l'option « IgnoreCarrierLoss= » aux unités .network pour enregistrer les paramètres réseau en cas de perte de connexion ;
  • Grâce au paramètre « RequiredForOnline = » dans les unités .network, vous pouvez désormais définir l'état de liaison minimum acceptable requis pour transférer l'interface réseau en « en ligne » et déclencher le gestionnaire systemd-networkd-wait-online ;
  • Ajout de l'option « --any » à systemd-networkd-wait-online pour attendre que l'une des interfaces réseau spécifiées soit prête au lieu de toutes, ainsi que de l'option « --operational-state = » pour déterminer l'état de le lien indiquant l'état de préparation ;
  • Ajout des paramètres « UseAutonomousPrefix = » et « UseOnLinkPrefix = » aux unités .network, qui peuvent être utilisés pour ignorer les préfixes lors de la réception.
    annonce depuis un routeur IPv6 (RA, Router Advertisement) ;

  • Dans les unités .network, les paramètres « MulticastFlood= », « NeighborSuppression= » et « Learning= » ont été ajoutés pour modifier les paramètres de fonctionnement du pont réseau, ainsi que le paramètre « TripleSampling= » pour changer le mode TRIPLE-SAMPLING d'interfaces virtuelles CAN ;
  • Les paramètres « PrivateKeyFile = » et « PresharedKeyFile = » ont été ajoutés aux unités .netdev, avec lesquels vous pouvez spécifier des clés privées et partagées (PSK) pour les interfaces VPN WireGuard ;
  • Ajout des options same-cpu-crypt et submit-from-crypt-cpus à /etc/crypttab, qui contrôlent le comportement du planificateur lors de la migration du travail lié au chiffrement entre les cœurs du processeur ;
  • systemd-tmpfiles fournit un traitement de fichier de verrouillage avant d'effectuer des opérations dans des répertoires avec des fichiers temporaires, ce qui vous permet de désactiver le travail de nettoyage des fichiers obsolètes pendant la durée de certaines actions (par exemple, lors du décompression d'une archive tar dans /tmp, des fichiers très anciens peuvent être ouverts qui ne peuvent pas être supprimés avant la fin de l'action avec eux) ;
  • La commande « systemd-analyze cat-config » offre la possibilité d'analyser une configuration divisée en plusieurs fichiers, par exemple les préréglages utilisateur et système, le contenu de tmpfiles.d et sysusers.d, les règles udev, etc.
  • Ajout de l'option "--cursor-file=" à "journalctl" pour spécifier un fichier pour charger et enregistrer le curseur de position ;
  • Ajout de la définition de l'hyperviseur ACRN et du sous-système WSL (sous-système Windows pour Linux) à systemd-detect-virt pour un branchement ultérieur à l'aide de l'opérateur conditionnel « ConditionVirtualization » ;
  • Lors de l'installation de systemd (lors de l'exécution de "ninja install"), création de liens symboliques vers les fichiers systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, distant-cryptsetup.target, distant-fs.target,
    systemd-networkd-wait-online.service et systemd-timesyncd.service. Pour créer ces fichiers, vous devez maintenant exécuter la commande « systemctl preset-all ».

Sourceopennet.ru

[: Fr]

Après deux mois de développement soumis version du gestionnaire de système systemd 242. Parmi les innovations, on peut noter le support des tunnels L2TP, la possibilité de contrôler le comportement de systemd-logind au redémarrage via des variables d'environnement, le support des partitions de démarrage XBOOTLDR étendues pour le montage de /boot, la possibilité de démarrer avec une partition racine dans overlayfs, ainsi qu'un grand nombre de nouveaux paramètres pour différents types d'unités.

Les principaux changements:

  • systemd-networkd prend en charge les tunnels L2TP ;
  • sd-boot et bootctl prennent en charge les partitions XBOOTLDR (Extended Boot Loader) conçues pour être montées sur /boot, en plus des partitions ESP montées sur /efi ou /boot/efi. Les noyaux, les paramètres, les images initrd et EFI peuvent désormais être démarrés à partir des partitions ESP et XBOOTLDR. Ce changement vous permet d'utiliser le chargeur de démarrage sd-boot dans des scénarios plus conservateurs, lorsque le chargeur de démarrage lui-même est situé dans l'ESP et que les noyaux chargés et les métadonnées associées sont placés dans une section distincte ;
  • Ajout de la possibilité de démarrer avec l'option « systemd.volatile=overlay » transmise au noyau, ce qui vous permet de placer la partition racine dans overlayfs et d'organiser le travail au-dessus d'une image en lecture seule du répertoire racine avec les modifications écrites dans un répertoire séparé dans tmpfs (les modifications apportées à cette configuration sont perdues après un redémarrage) . Par analogie, systemd-nspawn a ajouté l'option « --volatile=overlay » pour utiliser des fonctionnalités similaires dans les conteneurs ;
  • systemd-nspawn a ajouté l'option "--oci-bundle" pour permettre l'utilisation de bundles d'exécution pour fournir un lancement isolé de conteneurs conformes à la spécification Open Container Initiative (OCI). Pour une utilisation dans les unités de ligne de commande et nspawn, la prise en charge de diverses options décrites dans la spécification OCI est proposée, par exemple, les options « --inaccessible » et « Inaccessible » peuvent être utilisées pour exclure des parties du système de fichiers, et le « Des options --console » ont été ajoutées pour configurer les flux de sortie standard et « -pipe » ;
  • Ajout de la possibilité de contrôler le comportement de systemd-logind via des variables d'environnement : $SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU et
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_ENTRY. À l'aide de ces variables, vous pouvez connecter vos propres gestionnaires de processus de redémarrage (/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu et
    /run/systemd/reboot-to-boot-loader-entry) ou désactivez-les complètement (si la valeur est définie sur false) ;

  • Ajout des options « -boot-load-menu = » et
    « -boot-loader-entry = », vous permettant de sélectionner un élément de menu de démarrage ou un mode de démarrage spécifique après un redémarrage ;

  • Ajout d'une nouvelle commande d'isolation sandbox « RestrictSUIDSGID= », qui utilise seccomp pour interdire la création de fichiers avec des indicateurs SUID/SGID ;
  • S'assurer que les restrictions « NoNewPrivileges » et « RestrictSUIDSGID » sont appliquées par défaut dans les services avec le mode de génération d'ID utilisateur dynamique (« DynamicUser » activé) ;
  • Le paramètre par défaut MACAddressPolicy=persistent dans les fichiers .link a été modifié pour couvrir davantage de périphériques. Les interfaces des ponts réseau, des tunnels (tun, tap) et des liens agrégés (bond) ne s'identifient que par le nom de l'interface réseau, ce nom sert donc désormais de base pour lier les adresses MAC et IPv4. De plus, le paramètre « MACAddressPolicy=random » a été ajouté, qui peut être utilisé pour lier les adresses MAC et IPv4 aux appareils dans un ordre aléatoire ;
  • Les fichiers d'unités ".device" générés via systemd-fstab-generator n'incluent plus les unités ".mount" correspondantes comme dépendances dans la section "Wants=". Le simple fait de brancher un périphérique ne lance plus automatiquement une unité à monter, mais ces unités peuvent toujours être lancées pour d'autres raisons, par exemple dans le cadre de local-fs.target ou en tant que dépendance d'autres unités qui dépendent de local-fs.target. ;
  • Ajout de la prise en charge des masques (« * », etc.) aux commandes « networkctl list/status/lldp » pour filtrer certains groupes d'interfaces réseau par une partie de leur nom ;
  • La variable d'environnement $PIDFILE est désormais définie à l'aide du chemin absolu configuré dans les services via le paramètre "PIDFile=;".
  • Des serveurs publics Cloudflare (1.1.1.1) ont été ajoutés au nombre de serveurs DNS de sauvegarde utilisés si le DNS principal n'est pas explicitement défini. Pour redéfinir la liste des serveurs DNS de sauvegarde, vous pouvez utiliser l'option « -Ddns-servers= » ;
  • Lors de la détection de la présence d'un contrôleur de périphérique USB, un nouveau gestionnaire usb-gadget.target est automatiquement lancé (lorsque le système fonctionne sur un périphérique USB) ;
  • Pour les fichiers d'unité, le paramètre « CPUQuotaPeriodSec= » ​​a été implémenté, qui détermine la période de temps par rapport à laquelle le quota de temps CPU est mesuré, défini via le paramètre « CPUQuota= » ;
  • Pour les fichiers d'unité, le paramètre « ProtectHostname = » a été implémenté, qui interdit aux services de modifier les informations sur le nom d'hôte, même s'ils disposent des autorisations appropriées ;
  • Pour les fichiers d'unité, le paramètre « NetworkNamespacePath= » a été implémenté, qui vous permet de lier un espace de noms à des services ou des unités de socket en spécifiant le chemin d'accès au fichier d'espace de noms dans le pseudo-FS /proc ;
  • Ajout de la possibilité de désactiver la substitution des variables d'environnement pour les processus lancés à l'aide du paramètre « ExecStart= » en ajoutant un caractère « : » avant la commande de démarrage ;
  • Pour les minuteries (unités .timer), nouveaux indicateurs « OnClockChange = » et
    « OnTimezoneChange= », avec lequel vous pouvez contrôler l'appel de l'unité lorsque l'heure du système ou le fuseau horaire change ;

  • Ajout de nouveaux paramètres « ConditionMemory= » et « ConditionCPUs= », qui déterminent les conditions d'appel d'une unité en fonction de la taille de la mémoire et du nombre de cœurs CPU (par exemple, un service gourmand en ressources ne peut être lancé que si la quantité requise de La RAM est disponible);
  • Ajout d'une nouvelle unité time-set.target qui accepte l'heure système définie localement, sans utiliser la réconciliation avec les serveurs de temps externes à l'aide de l'unité time-sync.target. La nouvelle unité peut être utilisée par les services qui ont besoin de la précision des horloges locales non synchronisées ;
  • L'option « --show-transaction » a été ajoutée à « systemctl start » et aux commandes similaires, lorsqu'elle est spécifiée, un résumé de tous les travaux ajoutés à la file d'attente en raison de l'opération demandée est affiché ;
  • systemd-networkd implémente la définition d'un nouvel état « asservi », utilisé à la place de « dégradé » ou « porteur » pour les interfaces réseau qui font partie de liens agrégés ou de ponts réseau. Pour les interfaces primaires, en cas de problème sur l'un des liens composites, l'état 'degraded-carrier' a été ajouté ;
  • Ajout de l'option « IgnoreCarrierLoss= » aux unités .network pour enregistrer les paramètres réseau en cas de perte de connexion ;
  • Grâce au paramètre « RequiredForOnline = » dans les unités .network, vous pouvez désormais définir l'état de liaison minimum acceptable requis pour transférer l'interface réseau en « en ligne » et déclencher le gestionnaire systemd-networkd-wait-online ;
  • Ajout de l'option « --any » à systemd-networkd-wait-online pour attendre que l'une des interfaces réseau spécifiées soit prête au lieu de toutes, ainsi que de l'option « --operational-state = » pour déterminer l'état de le lien indiquant l'état de préparation ;
  • Ajout des paramètres « UseAutonomousPrefix = » et « UseOnLinkPrefix = » aux unités .network, qui peuvent être utilisés pour ignorer les préfixes lors de la réception.
    annonce depuis un routeur IPv6 (RA, Router Advertisement) ;

  • Dans les unités .network, les paramètres « MulticastFlood= », « NeighborSuppression= » et « Learning= » ont été ajoutés pour modifier les paramètres de fonctionnement du pont réseau, ainsi que le paramètre « TripleSampling= » pour changer le mode TRIPLE-SAMPLING d'interfaces virtuelles CAN ;
  • Les paramètres « PrivateKeyFile = » et « PresharedKeyFile = » ont été ajoutés aux unités .netdev, avec lesquels vous pouvez spécifier des clés privées et partagées (PSK) pour les interfaces VPN WireGuard ;
  • Ajout des options same-cpu-crypt et submit-from-crypt-cpus à /etc/crypttab, qui contrôlent le comportement du planificateur lors de la migration du travail lié au chiffrement entre les cœurs du processeur ;
  • systemd-tmpfiles fournit un traitement de fichier de verrouillage avant d'effectuer des opérations dans des répertoires avec des fichiers temporaires, ce qui vous permet de désactiver le travail de nettoyage des fichiers obsolètes pendant la durée de certaines actions (par exemple, lors du décompression d'une archive tar dans /tmp, des fichiers très anciens peuvent être ouverts qui ne peuvent pas être supprimés avant la fin de l'action avec eux) ;
  • La commande « systemd-analyze cat-config » offre la possibilité d'analyser une configuration divisée en plusieurs fichiers, par exemple les préréglages utilisateur et système, le contenu de tmpfiles.d et sysusers.d, les règles udev, etc.
  • Ajout de l'option "--cursor-file=" à "journalctl" pour spécifier un fichier pour charger et enregistrer le curseur de position ;
  • Ajout de la définition de l'hyperviseur ACRN et du sous-système WSL (sous-système Windows pour Linux) à systemd-detect-virt pour un branchement ultérieur à l'aide de l'opérateur conditionnel « ConditionVirtualization » ;
  • Lors de l'installation de systemd (lors de l'exécution de "ninja install"), création de liens symboliques vers les fichiers systemd-networkd.service, systemd-networkd.socket,
    systemd-resolved.service, distant-cryptsetup.target, distant-fs.target,
    systemd-networkd-wait-online.service et systemd-timesyncd.service. Pour créer ces fichiers, vous devez maintenant exécuter la commande « systemctl preset-all ».

Source: opennet.ru

[:]

Ajouter un commentaire