Après quatre mois de développement, est présentée la sortie du gestionnaire de système systemd 255. Parmi les améliorations les plus importantes : la prise en charge de l'export des disques via NVMe-TCP, le composant systemd-bsod pour l'affichage plein écran des messages d'erreur, le systemd-vmspawn utilitaire de démarrage des machines virtuelles, l'utilitaire varlinkctl pour gérer les services Varlink, l'utilitaire systemd-pcrlock pour analyser les registres PCR TPM2 et générer des règles d'accès, module d'authentification pam_systemd_loadkey.so.
Principaux changements dans la nouvelle version :
- Le composant « systemd-storagetm » a été ajouté, ce qui permet d'exporter automatiquement tous les périphériques de bloc locaux à l'aide du pilote NVMe-TCP (NVMe over TCP), qui permet d'accéder aux lecteurs NVMe sur le réseau (NVM Express over Fabrics). en utilisant le protocole TCP. Une nouvelle unité « storage-target-mode.target » est chargée de fournir l'accès en mode NVMe sur TCP, qui peut être activée au stade du démarrage en spécifiant « rd.systemd.unit=storage-target-mode.target » dans le fichier ligne de commande du noyau, par exemple, si vous devez accéder à distance au lecteur à des fins de diagnostic.
- Ajout du composant « systemd-bsod » avec la mise en œuvre d'un analogue de « l'écran bleu de la mort », qui vous permet d'afficher des messages sur les erreurs critiques (LOG_EMERG) sous la forme d'une notification plein écran au stade du démarrage.
- Ajout de l'utilitaire « systemd-vmspawn », analogue de l'utilitaire systemd-nspawn pour le lancement d'une image de système d'exploitation dans une machine virtuelle (l'utilitaire systemd-nspawn est conçu pour lancer des conteneurs, et systemd-vmspawn fournit une interface similaire pour machines virtuellesActuellement, seul un backend basé sur QEMU est disponible pour exécuter des machines virtuelles.
- Ajout de l'utilitaire "varlinkctl" pour appeler et introspecter les services à l'aide du protocole Varlink.
- L'utilitaire « systemd-pcrlock » a été ajouté pour analyser et prédire les états des registres TPM2 PCR (Platform Configuration Register) et générer des règles d'accès stockées dans l'index TPM2 NV qui permettent d'accéder uniquement aux objets TPM2, tels que les clés de chiffrement de disque. à partir de composants signés numériquement lancés lors de l'étape de téléchargement vérifié. Le résultat d'une demande d'état PCR dans TPM2, le journal des événements de démarrage actuel produit par le micrologiciel UEFI (/sys/kernel/security/tpm0/binary_bios_measurements) ou un journal TPM2 enregistré localement (/run/log/systemd/tpm2-measure) peuvent être utilisées comme données d’entrée pour l’analyse .log). La prise en charge des règles d'accès persistantes a été ajoutée à systemd-cryptsetup, systemd-cryptenroll et systemd-repart.
- Ajout du module PAM pam_systemd_loadkey.so, conçu pour extraire automatiquement du trousseau de clés du noyau la phrase secrète utilisée dans cryptsetup pour déverrouiller le système de fichiers racine crypté, et définir cette phrase secrète comme jeton d'authentification (authentification PAM). Le module peut être utilisé, par exemple, pour configurer l'accès au déverrouillage automatique au trousseau GNOME et au portefeuille KDE lorsque la connexion automatique est activée.
- Ajout de la prise en charge de l'entrée en mode hibernation avec sauvegarde du contenu de la mémoire pour échanger les fichiers stockés dans le système de fichiers Btrfs.
- Les propriétés MemoryPeak, MemorySwapPeak, MemorySwapCurrent et MemoryZSwapCurrent ont été ajoutées aux unités, correspondant aux propriétés memory.peak, memory.swap.peak, memory.swap.current et memory.zswap.current disponibles via cgroup v2. Les informations sur ces propriétés sont incluses dans la sortie « systemctl status ».
- La façon de démarrer les services a été retravaillée, passant à l'utilisation d'un appel posix_spawn avec les options CLONE_VM et CLONE_VFORK pour démarrer un processus, et à l'utilisation d'un exécutable systemd-executor distinct pour configurer le démarrage du processus. Auparavant, les processus étaient branchés avec la fonction fork, copiant la mémoire du processus de contrôle en mode copie sur écriture et effectuant les réglages nécessaires (montage des espaces de noms et définition de CGroup) avant de lancer le fichier exécutable cible via l'appel exec, ce qui conduisait à problèmes dus à l'impossibilité d'accéder à certaines API. La Glibc se trouve entre l'exécution des fonctions fork et exec.
- Le code de suivi des processus internes a été déplacé pour utiliser PIDFD au lieu de PID dans les environnements avec un noyau prenant en charge PIDFD (PIDFD est associé à un processus spécifique et ne change pas, tandis qu'un PID peut être associé à un autre processus après le processus actuel associé à ce PID se termine). Implémentation de la possibilité de créer des unités de portée en utilisant PIDFD au lieu de PID pour sélectionner les processus.
- La prise en charge des hiérarchies de répertoires distinctes a été interrompue (lorsque /usr est monté séparément de la racine, ou lorsque les répertoires /bin et /usr/bin, /lib et /usr/lib sont séparés). À l'avenir, il a également été décidé de mettre fin à la prise en charge des groupes de contrôle v1, des scripts de service System V et des variables EFI SystemdOptions.
- La commande "systemctl switch-root" est limitée à une utilisation dans initrd uniquement. Pour remplacer le système de fichiers racine dans un environnement normal, utilisez « systemctl soft-reboot ».
- Les paramètres SuspendMode, HybridSleepMode, HibernateStat et HybridSleepState sont obsolètes dans la section « [Sleep] » de systemd-sleep.conf. Ces paramètres sont désormais ignorés et ne peuvent prendre que des valeurs par défaut.
- L'option SurviveFinalKillSignal a été ajoutée aux unités, ce qui vous permet d'ignorer le signal SIGTERM/SIGKILL final émis lors de l'arrêt, ce qui peut être utile pour laisser une unité fonctionner lors d'un redémarrage logiciel du système en mode redémarrage logiciel.
- Ajout du paramètre NFTSet qui vous permet d'utiliser des identifiants de groupe de contrôle pour changer de logique dans les règles de pare-feu.
- Ajout de l'option ConditionSecurity=measured-uki pour garantir que l'unité ne peut être lancée que sur un système démarré à partir d'une image de noyau vérifiée au format UKI.
- systemd-boot a ajouté de nouveaux raccourcis clavier "B" et "O" pour redémarrer et arrêter le système à partir du menu de démarrage. Ajout du paramètre "menu-disabled" pour désactiver le menu de démarrage.
- De nouvelles options ont été ajoutées à l'utilitaire systemd-repart : « -copy-from » pour obtenir les descriptions de partition à partir de l'image du système de fichiers spécifiée, « -copy-source » pour spécifier le répertoire de base pour le paramètre CopyFiles, « -make-ddi =confext», «—make-ddi=sysext» et «--make-ddi=portable» pour générer différents types DDI, et «--tpm2-device-key» pour lier le disque à une clé publique TPM2 spécifique.
- Dans l'utilitaire journalctl, la valeur « +N » a été ajoutée au paramètre « —lines » pour afficher les N enregistrements les plus anciens.
- Ajout de l'indicateur "--json" à udevadm pour la sortie au format JSON.
- Ajout de l'option "--tldr" aux utilitaires systemd-analyze, systemd-tmpfiles, systemd-sysusers, systemd-sysctl et systemd-binfmt pour imprimer uniquement les paramètres de configuration réels sans espaces ni commentaires.
- La prise en charge de l'architecture LoongArch64 a été ajoutée au sous-système seccomp. Autorisez l'utilisation de seccomp pour filtrer les appels système dans les services exécutés en tant qu'utilisateur non root sans activer le paramètre NoNewPrivileges=yes.
- Ajout d'une option "--tmpfs" à l'utilitaire systemd-mount pour monter une nouvelle instance "tmpfs".
Source: opennet.ru
