AprĂšs six mois de dĂ©veloppement, la version du gestionnaire de systĂšme systemd 257 est prĂ©sentĂ©e. Changements clĂ©s : nouvelles utilitaires systemd-sbsign et systemd-keyutil, support de MPTCP lors de l'activation par socket, support initial pour la compilation avec la bibliothĂšque C Musl, l'utilitaire updatectl pour gĂ©rer l'installation des mises Ă jour via systemd-sysupdate, possibilitĂ© de dĂ©marrer des services dans un espace de noms PID sĂ©parĂ©, protection contre la suppression accidentelle de fichiers lors de l'utilisation de « systemd-tmpfiles âpurge ».
Parmi les changements de la nouvelle version :
- Une nouvelle utilitaire systemd-sbsign a Ă©tĂ© ajoutĂ©e pour signer numĂ©riquement les fichiers exĂ©cutables au format PE (Portable Executable), destinĂ©s Ă ĂȘtre utilisĂ©s lors du dĂ©marrage en mode EFI Secure Boot. Pour gĂ©nĂ©rer la signature, des moteurs et fournisseurs fournis par la bibliothĂšque OpenSSL peuvent ĂȘtre utilisĂ©s. Systemd-sbsign peut ĂȘtre utilisĂ© comme alternative aux applications sbsigntool et pesign dans l'utilitaire ukify lors de la crĂ©ation d'images de noyau universelles UKI (Unified Kernel Image), combinant en un seul fichier le chargeur pour UEFI (UEFI boot stub), l'image du noyau Linux et l'environnement systĂšme initrd chargĂ© en mĂ©moire.
- Un nouvel utilitaire systemd-keyutil a Ă©tĂ© ajoutĂ©, implĂ©mentant diverses opĂ©rations sur les clĂ©s privĂ©es et les certificats X.509. Par exemple, systemd-keyutil peut ĂȘtre utilisĂ© pour vĂ©rifier la possibilitĂ© de charger des clĂ©s privĂ©es et des certificats, ainsi que pour en extraire les clĂ©s publiques au format PEM.
- Dans les unités « .socket », utilisées pour assurer le fonctionnement du mécanisme d'activation par socket (lancement de processus lors de la tentative d'établissement d'une connexion réseau), le support de MPTCP (Multipath TCP) a été implémenté, une extension du protocole TCP pour établir des connexions TCP en livrant des paquets simultanément par plusieurs chemins à travers différentes interfaces réseau, liées à différentes adresses IP.
- Des modifications nécessaires pour la compilation avec la bibliothÚque standard C Musl ont été incluses.
- Divers composants de systemd, affichant des indicateurs de progression des opérations (par exemple, systemd-repart, systemd-sysupdate/updatectl et importctl), ont été ajoutés avec la possibilité d'utiliser des séquences ANSI pour animer l'affichage de la progression. De telles séquences sont actuellement prises en charge uniquement dans le Windows Terminal (il est prévu que cette possibilité sera étendue aux émulateurs de terminaux pour Linux au fil du temps).
- Les capacités du composant systemd-sysupdate, utilisé pour identifier, télécharger et installer automatiquement des mises à jour en utilisant un mécanisme atomique de remplacement de partitions, de fichiers ou de répertoires, ont été étendues (deux partitions/fichiers/répertoires indépendants sont utilisés, l'un contenant la ressource actuelle en cours d'exécution et l'autre accueillant la mise à jour suivante, aprÚs quoi les partitions/fichiers/répertoires sont échangés). En pratique, systemd-sysupdate est déjà utilisé dans GNOME OS.
En plus du processus systemd-sysupdate, un service du mĂȘme nom a Ă©tĂ© ajoutĂ©, permettant d'utiliser D-Bus pour gĂ©rer la mise Ă jour du systĂšme par un utilisateur non privilĂ©giĂ©. Une nouvelle utilitaire updatectl a Ă©galement Ă©tĂ© incluse pour la gestion du service. Un drapeau «âoffline» a Ă©tĂ© ajoutĂ© Ă systemd-sysupdate pour interdire le tĂ©lĂ©chargement de mĂ©tadonnĂ©es par rĂ©seau et utiliser uniquement les versions dĂ©jĂ tĂ©lĂ©chargĂ©es sur le systĂšme local. Un support pour la sortie au format JSON a Ă©tĂ© ajoutĂ© Ă toutes les commandes.
- Un nouvel attribut «PrivatePIDs» a Ă©tĂ© implĂ©mentĂ© pour les services, permettant dâorganiser le lancement de processus avec PID 1 (processus init) dans un espace d'identifiants de processus distinct (namespace PID). Dans l'environnement créé pour le processus lancĂ©, seuls les processus de l'espace de noms créé lui seront visibles.
- Le systĂšme de rĂšgles udev a Ă©tĂ© mis Ă jour pour supporter les correspondances sans tenir compte des majuscules (par exemple, âATTR{foo}==i"abcd"â). GrĂące Ă udev, un accĂšs («uaccess») Ă l'appareil /dev/udmabuf a Ă©tĂ© accordĂ© aux utilisateurs locaux non privilĂ©giĂ©s, nĂ©cessaire pour travailler avec des camĂ©ras IPMI via libcamera. udev a Ă©tĂ© mis en place pour reconnaĂźtre divers portefeuilles cryptographiques matĂ©riels avec interface USB et attribuer la propriĂ©tĂ© ID_HARDWARE_WALLET, permettant ainsi d'appliquer le mode «uaccess» pour l'accĂšs d'utilisateurs non privilĂ©giĂ©s.
- De nouveaux champs RELEASE_TYPE, EXPERIMENT et EXPERIMENT_URL ont été ajoutés au fichier /etc/os-release. «RELEASE_TYPE» peut prendre les valeurs «experimental», «development», «stable» et «lts» pour distinguer les versions stables des versions en développement et des compilations expérimentales. Les paramÚtres EXPERIMENT et EXPERIMENT_URL sont destinés à expliquer la nature de la compilation expérimentale.
- Dans l'outil run0, dĂ©veloppĂ© comme un remplacement du programme sudo, une option « âshell-prompt-prefix » a Ă©tĂ© ajoutĂ©e, permettant de dĂ©finir la chaĂźne prĂ©fixe de l'invite de la ligne de commande. Par dĂ©faut, un emoji « đŠž Â» est affichĂ© comme prĂ©fixe pour mettre en Ă©vidence les sessions avec des privilĂšges Ă©levĂ©s.
- Dans systemd-tmpfiles, pour Ă©viter la suppression accidentelle de fichiers incorrects, l'option « âpurge » est dĂ©sormais appliquĂ©e uniquement aux configurations dans tmpfiles.d/ pour lesquelles le drapeau « $ » est explicitement dĂ©fini. Pour effectuer l'opĂ©ration « âpurge », il est Ă©galement maintenant requis de spĂ©cifier au moins un fichier du rĂ©pertoire tmpfiles.d/. Pour les lignes de type âLâ, un drapeau â?â a Ă©tĂ© ajoutĂ©, indiquant qu'un lien symbolique ne sera créé que si le fichier cible est prĂ©sent.
- Dans le gestionnaire de services et les utilitaires associĂ©s, la migration du code de suivi des processus vers l'utilisation de PIDFD au lieu de PID a Ă©tĂ© poursuivie. L'identifiant PIDFD est liĂ© Ă un processus spĂ©cifique et ne change pas, tandis que le PID peut ĂȘtre rĂ©affectĂ© Ă un autre processus aprĂšs la fin du processus actuel associĂ© Ă ce PID.
- Pour les services, une option « RestartMode » avec la valeur « debug » a Ă©tĂ© mise en Ćuvre, permettant le redĂ©marrage d'un service Ă©chouĂ© avec l'activation du mode de dĂ©bogage (la variable d'environnement DEBUG_INVOCATION=1 est dĂ©finie) et la valeur LogLevelMax sera temporairement Ă©levĂ©e au niveau de dĂ©bogage.
- Dans le gestionnaire PID 1, la possibilitĂ© de charger des rĂšgles pour le module LSM IPE (Integrity Policy Enforcement) a Ă©tĂ© mise en Ćuvre, dĂ©finissant la politique d'assurance de l'intĂ©gritĂ© pour l'ensemble du systĂšme (quelles opĂ©rations sont autorisĂ©es et comment vĂ©rifier l'authenticitĂ© des composants).
- Dans les fichiers unit « .timer », une option « DeferReactivation » a été ajoutée, permettant de sauter l'activation suivante par le minuteur si le service n'a pas encore terminé son exécution depuis la derniÚre activation.
- Dans le paramĂštre des fichiers unit PrivateUsers, la possibilitĂ© d'indiquer la valeur « identity » pour activer le mappage des identifiants utilisateurs lors de la crĂ©ation d'un espace de noms (user namespace) a Ă©tĂ© mise en Ćuvre.
- Dans le paramÚtre des fichiers unit PrivateTmp, le support de la valeur « disconnected » a été ajouté, permettant d'utiliser des instances distinctes de tmpfs pour les répertoires /tmp/ et /var/tmp/.
- Le paramÚtre unit des fichiers ProtectControlGroups a ajouté la prise en charge de nouveaux modes « privé » et « strict », qui, lorsqu'ils sont définis, créent un nouvel espace de noms cgroup (cgroup namespace) pour le service et montent cgroupfs. Lors de l'activation de l'option « strict », le montage de cgroupfs se fait en mode lecture seule.
- Dans les paramĂštres StateDirectory, RuntimeDirectory, CacheDirectory, LogsDirectory et ConfigurationDirectory, il est dĂ©sormais possible d'utiliser le flag â:roâ pour restreindre l'accĂšs aux rĂ©pertoires correspondants en mode lecture seule.
- Le paramĂštre de ligne de commande du noyau « systemd.machine_id » a Ă©tĂ© enrichi de la prise en charge de la valeur « firmware », ce qui permet au systĂšme d'identification (machine ID) d'ĂȘtre calculĂ© Ă partir de l'UUID provenant de SMBIOS/DeviceTree.
- Ajout de la prise en charge des appels systÚme mseal(), listmount() et statmount(), apparus dans les versions récentes du noyau Linux.
- Les utilitaires resolvectl, timedatectl et systemd-inhibit incluent désormais la prise en charge de l'autorisation interactive via Polkit.
- L'utilitaire systemctl permet dĂ©sormais d'utiliser l'option « ânow » avec la commande « reenable ».
- L'outil systemd-mount a ajoutĂ© l'option « âjson » pour afficher des rĂ©sultats au format JSON (par exemple, lorsqu'il est utilisĂ© avec l'option « âlist-devices », il affichera la liste des pĂ©riphĂ©riques au format JSON).
- L'outil « localectl » a Ă©tĂ© enrichi des options « -l » et « âfull » pour dĂ©sactiver la troncature des longues lignes lors de l'affichage.
- Dans sleep.conf, l'option HibernateOnACPower a été ajoutée pour retarder la mise en veille jusqu'à ce que l'appareil soit déconnecté de la source d'alimentation principale.
- Dans systemd-sysusers, les lignes « u » ont été mises à jour pour inclure le modificateur « ! », permettant la création de comptes utilisateurs complÚtement bloqués (auparavant, le blocage d'un utilisateur était effectué en attribuant un mot de passe incorrect, ce qui ne menait pas à un blocage lors de l'authentification par clés SSH).
- Dans systemd-coredump, l'option « EnterNamespace » a Ă©tĂ© ajoutĂ©e, fournissant un accĂšs aux espaces de montage de tout processus ayant rencontrĂ© une erreur pour obtenir leurs symboles de dĂ©bogage. En pratique, cette option peut ĂȘtre utile pour rĂ©aliser une rĂ©trotrace (backtrace) des fichiers core des applications exĂ©cutĂ©es dans des conteneurs isolĂ©s.
- Dans systemd-logind, le traitement de la combinaison Ctrl-Alt-Shift-Esc a Ă©tĂ© activĂ© pour envoyer aux composants de l'environnement utilisateur le signal org.freedesktop.login1.SecureAttentionKey, demandant l'affichage d'un dialogue de connexion sĂ©curisĂ©. Une configuration 'DesignatedMaintenanceTime' a Ă©tĂ© mise en Ćuvre pour planifier automatiquement l'arrĂȘt Ă un moment donnĂ©. De maniĂšre similaire au support des appareils DRM et evdev, le support de la configuration d'accĂšs des utilisateurs non privilĂ©giĂ©s aux appareils hidraw (manettes de jeu et joysticks) a Ă©tĂ© ajoutĂ©.
- Dans systemd-machined, le support de l'enregistrement par des clients non privilégiés a été ajouté. machines virtuelles et des conteneurs. L'accÚs à la fonctionnalité systemd-machined est fourni via l'API Varlink, en plus de D-Bus.
- Dans le fichier de configuration networkd.conf, une nouvelle section '[IPv6AddressLabel]' a été ajoutée pour configurer les étiquettes et les préfixes pour les adresses IPv6.
- La commande ânetworkctl editâ a Ă©tĂ© amĂ©liorĂ©e avec l'option ââstdinâ pour obtenir le contenu du fichier Ă partir de l'entrĂ©e standard. Les commandes ânetworkctl editâ et ânetworkctl catâ supportent dĂ©sormais la modification et l'affichage de fichiers .netdev en spĂ©cifiant l'interface rĂ©seau. L'option ââno-ask-passwordâ a Ă©tĂ© ajoutĂ©e pour dĂ©sactiver l'authentification interactive.
- Dans les utilitaires ukify, bootctl, systemd-keyutil, systemd-measure, systemd-repart et systemd-sbsign, l'option ââcertificate-sourceâ a Ă©tĂ© ajoutĂ©e pour charger le certificat X.509 via le fournisseur OpenSSL au lieu de le charger directement depuis un fichier.
- Dans systemd-boot, il est dĂ©sormais possible d'utiliser les boutons de volume pour naviguer vers le haut et vers le bas dans le menu de dĂ©marrage, ce qui peut ĂȘtre utile sur des appareils tels que les smartphones. L'utilitaire bootctl a Ă©tĂ© mis Ă jour pour prendre en charge l'installation de la base de donnĂ©es UEFI Secure Boot au format ESL(db/dbx/âŠ) pour systemd-boot.
- Dans journalctl, l'option ââlist-invocationâ a Ă©tĂ© ajoutĂ©e pour afficher la liste des appels des unitĂ©s, ainsi que l'option ââinvocationâ (â-Iâ) pour afficher uniquement les journaux liĂ©s Ă un appel spĂ©cifique.
- Dans systemd-nspawn, le support de l'utilisation non privilĂ©giĂ©e de FUSE (Filesystem in Userspace) dans les conteneurs a Ă©tĂ© ajoutĂ©. Lors de l'utilisation de l'option ââbind-userâ, le transfert des clĂ©s SSH de l'utilisateur dans le conteneur est assurĂ©, ce qui est nĂ©cessaire pour l'accĂšs SSH.
- Dans libsystemd, une nouvelle interface logicielle âsd-jsonâ utilisant le format JSON a Ă©tĂ© ajoutĂ©e, ainsi que l'interface âsd-varlinkâ utilisant l'IPC Varlink.
- La version de base recommandée du noyau a été portée à la version 5.4, publiée en 2019. L'année suivante, il est prévu de cesser le support des noyaux plus anciens et de marquer la version 5.4 comme la version de base minimale prise en charge.
- Le support des cgroups v1 est considéré comme obsolÚte et désactivé par défaut (pour l'activer, il est nécessaire de spécifier SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 dans la ligne de commande du noyau, en plus de l'activation dans les paramÚtres de systemd). Lors de la prochaine version systemd 258, le code associé aux cgroups v1 sera complÚtement supprimé. La version systemd 258 prévoit également la suppression du support des scripts de services System V.
Source : opennet.ru
