Publication du gestionnaire de système systemd 242

Après deux mois de développement, la version du gestionnaire de système systemd 242 est présentée. Parmi les nouveautés, on peut noter le support des tunnels L2TP, la possibilité de gérer le comportement de systemd-logind lors du redémarrage via des variables d'environnement, le support des partitions de démarrage étendues XBOOTLDR pour le montage de /boot, la possibilité de démarrer avec le partition racine en overlayfs, ainsi qu'un grand nombre de nouveaux réglages pour différents types d'unités.

Principales modifications :

  • Avec systemd-networkd, le support des tunnels L2TP a été assuré;
  • Dans sd-boot et bootctl, le support des partitions XBOOTLDR (Extended Boot Loader), destinées à être montées dans /boot, a été réalisé, en complément des partitions ESP, montées dans /efi ou /boot/efi. Les noyaux, réglages, images initrd et EFI peuvent maintenant être chargés à partir des partitions ESP ainsi que des partitions XBOOTLDR. Ce changement permet d'utiliser le chargeur sd-boot dans des scénarios plus conservateurs, lorsque le chargeur lui-même est placé dans l'ESP et que les noyaux chargés et les métadonnées associées sont déplacés dans une partition séparée;
  • Il a été ajouté la possibilité de démarrer en passant l'option au noyau «systemd.volatile=overlay», ce qui permet de placer la partition racine dans overlayfs et d'organiser le fonctionnement au-dessus d'une image du répertoire racine accessible en lecture seule avec l'enregistrement des modifications dans un répertoire séparé dans tmpfs (les modifications dans cette configuration sont perdues après un redémarrage). De même, dans systemd-nspawn, l'option «—volatile=overlay» a été ajoutée pour utiliser une fonctionnalité similaire dans les conteneurs;
  • Dans systemd-nspawn, l'option «—oci-bundle» a été ajoutée, permettant d'utiliser des ensembles d'exécution pour assurer le démarrage isolé des conteneurs, conformes aux exigences de la spécification Open Container Initiative (OCI). Pour utilisation en ligne de commande et dans les unités nspawn, le support de diverses options décrites dans la spécification OCI a été proposé, par exemple, pour exclure des parties du système de fichiers, les réglages «—inaccessible» et «Inaccessible» peuvent être utilisés, et pour configurer les flux de sortie standard, des options «—console» et «—pipe» ont été ajoutées;
  • Il a été ajouté 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. Grâce à ces variables, il est possible de connecter ses propres gestionnaires du 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) или вообще отключить их (при выставлении значения в false);
  • Dans la commande «systemctl reboot», des options «—boot-load-menu=» ont été ajoutées.
    «—boot-loader-entry=», permettant après le redémarrage de choisir un élément spécifique du menu de démarrage ou un mode de démarrage ;
  • Une nouvelle commande d'isolement sandbox «RestrictSUIDSGID=» a été ajoutée, utilisant seccomp pour interdire la création de fichiers avec les drapeaux SUID/SGID ;
  • L'application par défaut des restrictions «NoNewPrivileges» et «RestrictSUIDSGID» est assurée dans les services avec le mode de génération dynamique de l'identifiant utilisateur («DynamicUser») activé ;
  • Le paramètre par défaut MACAddressPolicy=persistent dans les fichiers .link a été modifié pour couvrir un plus grand nombre d'appareils. Les interfaces réseau de ponts, tunnels (tun, tap) et liaisons agrégées (bond) ne s'identifient que par le nom de l'interface réseau, c'est pourquoi ce nom est maintenant utilisé comme base pour le lien entre MAC et adresses IPv4. De plus, un paramètre «MACAddressPolicy=random» a été ajouté, que l'on peut utiliser pour lier les adresses MAC et IPv4 aux appareils de manière aléatoire ;
  • Les fichiers d'unité «.device» générés par systemd-fstab-generator n'incluent plus les unités correspondantes «.mount» comme dépendances dans la section «Wants=». Le simple branchement d'un appareil ne conduit plus au démarrage automatique de l'unité de montage, mais ces unités peuvent toujours être lancées pour d'autres raisons, par exemple, en tant que partie de local-fs.target ou comme dépendance d'autres unités dépendantes de local-fs.target ;
  • La commande «networkctl list/status/lldp» prend désormais en charge les masques («*» etc.) pour filtrer certains groupes d'interfaces réseau en fonction de leur nom ;
  • La variable d'environnement $PIDFILE est maintenant définie en utilisant le chemin absolu configuré dans les services via le paramètre «PIDFile=» ;
  • Les serveurs DNS de secours, utilisés lorsqu'aucun serveur DNS principal n'est explicitement défini, incluent des serveurs publics serveurs Cloudflare (1.1.1.1). Pour remplacer la liste des serveurs DNS de secours, on peut utiliser l'option «-Ddns-servers=» ;
  • Lors de la détection d'un contrôleur d'appareil USB (USB Device Controller), le nouveau gestionnaire usb-gadget.target est automatiquement déclenché (lorsque le système fonctionne sur un appareil USB) ;
  • Pour les fichiers d'unité, un paramètre «CPUQuotaPeriodSec=» a été implémenté, définissant la période de temps par rapport à laquelle la quota est mesurée sur le temps processeur, défini via le paramètre «CPUQuota=» ;
  • Pour les fichiers unitaires, la configuration « ProtectHostname= » a été mise en place pour interdire aux services de modifier les informations sur le nom d'hôte, même en cas de permissions appropriées ;
  • Pour les fichiers unitaires, la configuration « NetworkNamespacePath= » a été introduite, permettant de lier l'espace de noms aux services ou unités de socket en spécifiant le chemin du fichier de l'espace de noms dans le pseudo-système de fichiers /proc ;
  • Il est désormais possible de désactiver la substitution des variables d'environnement pour les processus lancés grâce à la configuration « ExecStart= », en ajoutant un symbole « : » avant la commande de lancement ;
  • Pour les minuteries (unités .timer), de nouveaux indicateurs « OnClockChange= » et
    « OnTimezoneChange= » ont été proposés, permettant de gérer l'appel de l'unité lors des changements de temps système ou de fuseau horaire ;
  • De nouvelles configurations « ConditionMemory= » et « ConditionCPUs= » ont été ajoutées, définissant les conditions d'appel de l'unité en fonction de la taille de la mémoire et du nombre de cœurs CPU (par exemple, un service gourmand en ressources peut être lancé uniquement si une certaine quantité de RAM est disponible) ;
  • Une nouvelle unité time-set.target a été ajoutée, acceptant le temps système localement installé, sans utilisation de la synchronisation avec des serveurs externes de temps précis via l'unité time-sync.target. Cette nouvelle unité peut être utilisée par des services qui se contentent de l'exactitude des horloges locales non synchronisées ;
  • Dans « systemctl start » et des commandes similaires, une option « --show-transaction » a été ajoutée, qui affiche un résumé de tous les travaux ajoutés à la queue en raison de l'opération demandée ;
  • Dans systemd-networkd, une nouvelle condition « enslaved » a été définie, utilisée à la place de « degraded » ou « carrier » pour les interfaces réseau faisant partie de liens agrégés ou de ponts réseau. Pour les interfaces principales, en cas de problème avec l'un des liens composants, un état « degraded-carrier » a été ajouté ;
  • Dans les unités .network, une option « IgnoreCarrierLoss= » a été ajoutée pour conserver les paramètres réseau en cas de perte de connexion ;
  • Grâce à la configuration « RequiredForOnline= », il est désormais possible de définir dans les unités .network l'état de lien minimum requis pour passer l'interface réseau à « online » et déclencher le gestionnaire systemd-networkd-wait-online ;
  • Dans systemd-networkd-wait-online, une option « --any » a été ajoutée pour attendre la disponibilité de n'importe quelle interface réseau spécifiée au lieu de toutes, ainsi qu'une option « --operational-state= » pour définir l'état du lien indiquant la disponibilité ;
  • Dans .network, des paramètres « UseAutonomousPrefix= » et « UseOnLinkPrefix= » ont été ajoutés, qui peuvent être utilisés pour ignorer les préfixes lors de la réception
    d'une annonce du routeur IPv6 (RA, Router Advertisement);
  • Dans .network, des paramètres « MulticastFlood= », « NeighborSuppression= » et « Learning= » ont été ajoutés pour modifier les paramètres de fonctionnement du bridge réseau, ainsi que le paramètre « TripleSampling= » pour changer le mode TRIPLE-SAMPLING des interfaces virtuelles CAN;
  • Dans .netdev, des paramètres « PrivateKeyFile= » et « PresharedKeyFile= » ont été ajoutés, permettant de spécifier les clés privée et partagée (PSK) pour les interfaces WireGuard VPN;
  • Dans /etc/crypttab, des options same-cpu-crypt et submit-from-crypt-cpus ont été ajoutées, régissant le comportement du planificateur lors de la migration entre les cœurs du CPU des travaux liés au chiffrement;
  • Dans systemd-tmpfiles, la gestion du fichier de verrouillage a été assurée avant d'effectuer des opérations dans les répertoires contenant des fichiers temporaires, permettant de désactiver temporairement le travail de nettoyage des anciens fichiers (par exemple, lors de l'extraction d'une archive tar dans /tmp, de très anciens fichiers peuvent être révélés, qui ne peuvent pas être supprimés tant que les actions les concernant ne sont pas terminées);
  • Dans la commande « systemd-analyze cat-config », il est désormais possible d'analyser la configuration répartie sur plusieurs fichiers, par exemple, les paramètres prédéfinis utilisateur et système, le contenu de tmpfiles.d et sysusers.d, les règles udev, etc.
  • Dans « journalctl », une option « —cursor-file= » a été ajoutée pour définir le fichier pour le chargement et la sauvegarde de l'index de position;
  • Dans systemd-detect-virt, la détection de l'hyperviseur ACRN et de la sous-système WSL (Windows Subsystem for Linux) a été ajoutée pour permettre le ramification subséquente à l'aide de l'opérateur conditionnel « ConditionVirtualization »;
  • Lors de l'installation de systemd (lors de l'exécution de « ninja install »), la création de liens symboliques vers les fichiers systemd-networkd.service, systemd-networkd.socket a été arrêtée dans le répertoire /etc,
    systemd-resolved.service, remote-cryptsetup.target, remote-fs.target,
    systemd-networkd-wait-online.service et systemd-timesyncd.service. Pour créer ces fichiers, il est désormais nécessaire d'exécuter la commande « systemctl preset-all ».

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster