AprÚs cinq mois de développement, la version du gestionnaire de systÚme systemd 250 est présentée. Dans cette nouvelle version, il est désormais possible de stocker des informations d'identification sous forme chiffrée, la vérification des partitions GPT détectées automatiquement par signature numérique a été mise en place, l'information sur les raisons des délais de lancement des services a été améliorée, des options pour limiter l'accÚs des services à certains systÚmes de fichiers et interfaces réseau ont été ajoutées, le support du contrÎle d'intégrité des partitions via le module dm-integrity a été assuré, et le support de la mise à jour automatique de sd-boot a été intégré.
Principales modifications :
- Le support des informations d'identification chiffrĂ©es et authentifiĂ©es a Ă©tĂ© ajoutĂ©, ce qui peut ĂȘtre utile pour le stockage sĂ©curisĂ© de matĂ©riaux confidentiels, tels que SSL-clĂ©s et mots de passe d'accĂšs. Le dĂ©chiffrement des informations d'identification se fait uniquement en cas de besoin et en lien avec l'installation locale ou le matĂ©riel. Les donnĂ©es sont automatiquement chiffrĂ©es Ă l'aide d'algorithmes de chiffrement symĂ©triques, dont la clĂ© peut ĂȘtre placĂ©e dans le systĂšme de fichiers, dans la puce TPM2, ou en utilisant un schĂ©ma combinĂ©. Lors du lancement du service, les informations d'identification sont automatiquement dĂ©chiffrĂ©es et deviennent disponibles pour le service sous leur forme normale. Pour travailler avec des informations d'identification chiffrĂ©es, un utilitaire appelĂ© 'systemd-creds' a Ă©tĂ© ajoutĂ©, et pour les services, des paramĂštres LoadCredentialEncrypted et SetCredentialEncrypted ont Ă©tĂ© proposĂ©s.
- Dans sd-stub, le fichier exécutable pour EFI, par lequel le firmware EFI charge le noyau Linux, le support du chargement du noyau via le protocole LINUX_EFI_INITRD_MEDIA_GUID EFI a été ajouté. De plus, dans sd-stub, la possibilité d'emballer des informations d'identification et des fichiers sysext dans une archive cpio et de transmettre cette archive au noyau avec initrd a également été intégrée (les fichiers supplémentaires sont placés dans le répertoire /.extra/). Cette possibilité permet d'utiliser un environnement initrd vérifiable et immuable, complété par des sysexts et des données chiffrées pour l'authentification.
- La spécification Discoverable Partitions a été considérablement élargie, fournissant des moyens de définir, monter et activer des partitions systÚme utilisant GPT (GUID Partition Tables). Par rapport aux versions précédentes, la spécification offre désormais un support pour la partition racine et la partition /usr sur la plupart des architectures, y compris celles ne utilisant pas UEFI.
Dans les Partitions Découvrables, le support des partitions dont l'intégrité est vérifiée par le module dm-verity à l'aide de signatures numériques PKCS#7 a également été ajouté, facilitant ainsi la création d'images de disque entiÚrement authentifiées. Le support de la vérification est intégré dans divers utilitaires manipulant les images de disque, y compris systemd-nspawn, systemd-sysext, systemd-dissect, les services avec RootImage, systemd-tmpfiles et systemd-sysusers.
- Pour les unitĂ©s qui prennent beaucoup de temps Ă dĂ©marrer ou Ă s'arrĂȘter, en plus d'afficher un indicateur animĂ© de progression de l'opĂ©ration, il est possible de fournir des informations d'Ă©tat, permettant de comprendre ce qui se passe actuellement avec le service et quel service le gestionnaire de systĂšme attend actuellement pour terminer son exĂ©cution.
- Un paramĂštre DefaultOOMScoreAdjust a Ă©tĂ© ajoutĂ© Ă /etc/systemd/system.conf et /etc/systemd/user.conf, permettant d'ajuster le seuil de dĂ©clenchement de l'OOM-killer en cas de manque de mĂ©moire, applicable aux processus que systemd lance pour le systĂšme et les utilisateurs. Par dĂ©faut, le poids des services systĂšme est plus Ă©levĂ© que celui des services utilisateur, c'est-Ă -dire qu'en cas de manque de mĂ©moire, la probabilitĂ© que des services utilisateur soient arrĂȘtĂ©s est plus Ă©levĂ©e que celle des services systĂšme.
- Une nouvelle configuration RestrictFileSystems a Ă©tĂ© ajoutĂ©e, permettant de limiter l'accĂšs des services Ă certains types de systĂšmes de fichiers. Pour consulter les types de systĂšmes de fichiers disponibles, vous pouvez utiliser la commande « systemd-analyze filesystems ». De mĂȘme, une option RestrictNetworkInterfaces a Ă©tĂ© mise en Ćuvre pour limiter l'accĂšs Ă certaines interfaces rĂ©seau. La mise en Ćuvre est basĂ©e sur le module BPF LSM, qui restreint l'accĂšs d'un groupe de processus aux objets du noyau.
- Un nouveau fichier de configuration /etc/integritytab et l'utilitaire systemd-integritysetup ont été ajoutés, configurant le module dm-integrity pour le contrÎle de l'intégrité des données au niveau des secteurs individuels, par exemple, pour garantir l'immuabilité des données chiffrées (Authentified Encryption, garantissant que le bloc de données n'a pas été modifié par contournement). Le format du fichier /etc/integritytab est similaire à celui des fichiers /etc/crypttab et /etc/veritytab, à l'exception prÚs que dm-crypt et dm-verity sont remplacés par dm-integrity.
- Un nouveau fichier unit systemd-boot-update.service a été ajouté ; lorsqu'il est activé et qu'un chargeur sd-boot est installé, systemd mettra automatiquement à jour la version du chargeur sd-boot, maintenant ainsi le code du chargeur à jour. Le sd-boot est désormais compilé par défaut avec le support du mécanisme SBAT (UEFI Secure Boot Advanced Targeting), qui résout les problÚmes de révocation des certificats pour UEFI Secure Boot. De plus, dans sd-boot, il est désormais possible d'analyser les paramÚtres de démarrage de Microsoft Windows pour former correctement les noms des partitions de démarrage Windows et afficher la version de Windows.
Dans sd-boot, il est également possible de définir un schéma de couleurs lors de la compilation. Pendant le démarrage, le support du changement de résolution d'écran a été ajouté en appuyant sur la touche « r ». Une touche de raccourci « f » a été ajoutée pour accéder à l'interface de configuration du firmware. Un mode de démarrage automatique du systÚme a été ajouté, correspondant à l'élément de menu sélectionné lors du dernier démarrage. La possibilité de chargement automatique des pilotes EFI, placés dans le répertoire /EFI/systemd/drivers/ de la partition ESP (EFI System Partition), a été ajoutée.
- Un nouveau fichier unit factory-reset.target a été inclus, géré dans systemd-logind de maniÚre analogue aux opérations reboot, poweroff, suspend et hibernate, et utilisé pour créer des gestionnaires permettant de réinitialiser aux paramÚtres d'usine.
- Le processus systemd-resolved crĂ©e dĂ©sormais un socket d'Ă©coute supplĂ©mentaire Ă l'adresse 127.0.0.54 en plus du 127.0.0.53. Les requĂȘtes arrivant Ă l'adresse 127.0.0.54 sont toujours redirigĂ©es vers le serveur DNS supĂ©rieur et ne sont pas traitĂ©es localement.
- Il est maintenant possible de compiler systemd-importd et systemd-resolved avec la bibliothĂšque OpenSSL au lieu de libgcrypt.
- Un support initial pour l'architecture LoongArch, utilisée dans les processeurs Loongson, a été ajouté.
- Dans systemd-gpt-auto-generator, la possibilité de configuration automatique des partitions de swap détectées par le systÚme, chiffrées par le sous-systÚme LUKS2, a été réalisée.
- Dans le code d'analyse des images GPT utilisé dans systemd-nspawn, systemd-dissect et des utilitaires similaires, la possibilité de décoder des images pour d'autres architectures a été ajoutée, ce qui permet d'utiliser systemd-nspawn pour exécuter des images dans des émulateurs d'autres architectures.
- Lors de l'inspection des images disque dans systemd-dissect, des informations sur l'usage de la partition, telles que l'adéquation au démarrage via UEFI ou le démarrage dans un conteneur, sont maintenant affichées.
- Le fichier system-extension.d/ a Ă©tĂ© enrichi dâun champ « SYSEXT_SCOPE », permettant de dĂ©signer le domaine dâapplication de lâimage systĂšme â « initrd », « system » ou « portable ».
- Le fichier os-release a Ă©tĂ© complĂ©tĂ© par un champ « PORTABLE_PREFIXES », pouvant ĂȘtre utilisĂ© dans les images portables pour dĂ©finir les prĂ©fixes soutenus par les fichiers unit.
- Dans systemd-logind, de nouveaux paramĂštres HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress et HandleHibernateKeyLongPress ont Ă©tĂ© implĂ©mentĂ©s, permettant de dĂ©finir les actions lors du maintien appuyĂ© de certaines touches pendant plus de 5 secondes (par exemple, une pression rapide sur la touche Suspend peut ĂȘtre configurĂ©e pour mettre le systĂšme en veille, tandis quâun maintien long peut le mettre en mode hibernation).
- Pour les unitĂ©s, des paramĂštres StartupAllowedCPUs et StartupAllowedMemoryNodes ont Ă©tĂ© introduits, qui diffĂšrent des paramĂštres similaires sans le prĂ©fixe Startup en ce sens quâils ne s'appliquent que lors du dĂ©marrage et de l'arrĂȘt, permettant ainsi de dĂ©finir des restrictions de ressources diffĂ©rentes au moment du dĂ©marrage.
- Des vérifications [Condition|Assert][Memory|CPU|IO]Pressure ont été ajoutées, permettant de passer ou d'échouer l'activation d'une unité en cas de détection d'une forte charge sur la mémoire, le CPU et les entrées/sorties via le mécanisme PSI.
- La limite par défaut du nombre maximal d'inodes a été augmentée pour la partition /dev de 64k à 1M, et pour /tmp de 400k à 1M.
- Pour les services, une configuration ExecSearchPath a été proposée, permettant de modifier le chemin de recherche des fichiers exécutables lancés par des configurations telles que ExecStart.
- Un paramÚtre RuntimeRandomizedExtraSec a été ajouté, permettant d'introduire des variations aléatoires dans le délai RuntimeMaxSec, qui limite le temps d'exécution de l'unité.
- La syntaxe des paramÚtres RuntimeDirectory, StateDirectory, CacheDirectory et LogsDirectory a été étendue, permettant, en spécifiant une valeur supplémentaire séparée par deux-points, de créer un lien symbolique vers un répertoire donné afin d'organiser l'accÚs par plusieurs chemins.
- Pour les services, des configurations TTYRows et TTYColumns ont été proposées pour définir le nombre de lignes et de colonnes dans le dispositif TTY.
- Un nouvel ajustement ExitType a été ajouté, permettant de modifier la logique de définition de l'achÚvement du service. Par défaut, systemd ne suit que la fin du processus principal, mais en définissant ExitType=cgroup, le gestionnaire systÚme attendra la fin du dernier processus dans le cgroup.
- La prise en charge de TPM2/FIDO2/PKCS11 dans systemd-cryptsetup est désormais également compilée en tant que plugin pour cryptsetup, ce qui permet d'utiliser la commande cryptsetup standard pour déverrouiller la partition chiffrée.
- Le gestionnaire TPM2 dans systemd-cryptsetup/systemd-cryptsetup a été mis à jour pour prendre en charge les clés RSA primaires, en plus des clés ECC, afin d'améliorer la compatibilité avec les puces qui ne prennent pas en charge l'ECC.
- Une option token-timeout a été ajoutée à /etc/crypttab, permettant de définir le temps d'attente maximal pour se connecter à un jeton PKCS#11/FIDO2, aprÚs quoi une demande de mot de passe ou de clé de récupération sera affichée.
- Dans systemd-timesyncd, la configuration SaveIntervalSec a Ă©tĂ© mise en Ćuvre, qui permet d'enregistrer pĂ©riodiquement la valeur actuelle de l'heure systĂšme sur le disque, par exemple, pour rĂ©aliser des horloges monotoniques sur les systĂšmes sans RTC.
- Des options ont été ajoutées à l'outil systemd-analyze : «--image» et «--root» pour vérifier les fichiers unitaires au sein d'une image ou d'un répertoire racine spécifié, «--recursive-errors» pour prendre en compte les unités dépendantes lors de l'identification d'une erreur, «--offline» pour vérifier les fichiers unitaires sauvegardés sur le disque, «--json» pour afficher le format JSON, «--quiet» pour désactiver les messages non essentiels, «--profile» pour lier à un profil portable. De plus, la commande inspect-elf a été ajoutée pour analyser les fichiers de mémoire dans le format ELF et la possibilité de vérifier les fichiers unitaires avec un nom de l'unité donné, indépendamment de la correspondance avec le nom du fichier.
- Dans systemd-networkd, la prise en charge du bus CAN (Controller Area Network) a été étendue. Des réglages ont été ajoutés pour gérer les modes CAN : Loopback, OneShot, PresumeAck et ClassicDataLengthCode. Dans la section [CAN] des fichiers .network, les options TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 et DataSyncJumpWidth ont été ajoutées pour gérer la synchronisation des bits de l'interface CAN.
- Dans systemd-networkd, pour le client DHCPv4, une option Label a été ajoutée, permettant de configurer une étiquette d'adresses utilisée lors de la configuration des adresses IPv4.
- Dans systemd-udevd pour «ethtool», la prise en charge des valeurs spĂ©ciales «max» a Ă©tĂ© mise en Ćuvre, fixant la taille du tampon Ă la valeur maximale prise en charge par le matĂ©riel.
- Dans les fichiers .link pour systemd-udevd, il est désormais possible de configurer divers paramÚtres pour le regroupement des adaptateurs réseau et la connexion de périphériques matériels (offload).
- Dans systemd-networkd, de nouveaux fichiers .network sont proposĂ©s par dĂ©faut : 80-container-vb.network pour dĂ©finir les ponts rĂ©seau créés lors du lancement de systemd-nspawn avec les options «ânetwork-bridge» ou «ânetwork-zone» ; 80-6rd-tunnel.network pour dĂ©finir les tunnels créés automatiquement lors de la rĂ©ception d'une rĂ©ponse DHCP avec l'option 6RD.
- Dans systemd-networkd et systemd-udevd, la prise en charge du passage d'IP sur les interfaces InfiniBand a été ajoutée, pour laquelle une section «[IPoIB]» a été ajoutée dans les fichiers systemd.netdev, et le traitement de la valeur «ipoib» a été réalisé dans la configuration Kind.
- Dans systemd-networkd, la configuration automatique des routes pour les adresses indiquĂ©es dans le paramĂštre AllowedIPs a Ă©tĂ© mise en place, pouvant ĂȘtre configurĂ©e via les paramĂštres RouteTable et RouteMetric dans les sections [WireGuard] et [WireGuardPeer].
- Dans systemd-networkd, la génération automatique d'adresses MAC non modifiables pour les interfaces batadv et bridge a été assurée. Pour désactiver ce comportement, vous pouvez spécifier la valeur MACAddress=none dans les fichiers .netdev.
- Dans les fichiers .link, la configuration WakeOnLanPassword a été ajoutée à la section «[Link]», pour définir le mot de passe lors de l'utilisation de WoL en mode «SecureOn».
- Dans la section «[CAKE]» des fichiers .network, des paramÚtres AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO et UseRawPacketSize ont été ajoutés pour définir les paramÚtres du mécanisme de gestion des files d'attente réseau CAKE (Common Applications Kept Enhanced).
- Dans la section «[Network]» des fichiers .network, le paramÚtre IgnoreCarrierLoss a été ajouté, permettant de définir combien de temps attendre avant de réagir à la perte du signal porteur.
- Dans systemd-nspawn, homectl, machinectl et systemd-run, la syntaxe du paramĂštre «âsetenv» a Ă©tĂ© Ă©largie : si seul le nom de la variable est spĂ©cifiĂ© (sans «=»), la valeur sera prise Ă partir de la variable d'environnement correspondante (par exemple, si «âsetenv=FOO» est indiquĂ©, la valeur de la variable d'environnement $FOO sera utilisĂ©e pour la variable d'environnement correspondante dans le conteneur).
- Dans systemd-nspawn, une option «âsuppress-sync» a Ă©tĂ© ajoutĂ©e pour dĂ©sactiver l'exĂ©cution des appels systĂšme sync()/fsync()/fdatasync() lors de la crĂ©ation d'un conteneur (utile lorsque la vitesse est primordiale et que la sauvegarde des artefacts de construction en cas d'Ă©chec n'est pas importante, car ils peuvent ĂȘtre recréés Ă tout moment).
- Une nouvelle base de données hwdb a été ajoutée, incluant divers types d'analyseurs de signaux (multimÚtres, analyseurs de protocoles, oscilloscopes, etc.). Les informations sur les caméras dans hwdb ont été enrichies d'un champ indiquant le type de caméra (normale ou infrarouge) et l'emplacement de l'objectif (avant ou arriÚre).
- La génération de noms d'interfaces réseau fixes pour les dispositifs netfront utilisés dans Xen a été assurée.
- L'analyse des fichiers core avec l'outil systemd-coredump basé sur les bibliothÚques libdw/libelf est désormais effectuée dans un processus distinct, isolé dans un environnement sandbox.
- Dans systemd-importd, le support des variables d'environnement $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC a été ajouté, permettant de désactiver la génération de sous-volumes Btrfs, ainsi que de configurer les quotas et la synchronisation des disques.
- Dans systemd-journald sur les systÚmes de fichiers prenant en charge le mode copy-on-write, le mode COW a été réactivé pour les journaux archivés, ce qui permet leur compression par les moyens de Btrfs.
- Dans systemd-journald, une dĂ©duplication des champs identiques dans un mĂȘme message a Ă©tĂ© mise en Ćuvre, effectuĂ©e au stade prĂ©cĂ©dent l'insertion du message dans le journal.
- Une option « âshow » a Ă©tĂ© ajoutĂ©e Ă la commande shutdown pour afficher l'arrĂȘt programmĂ©.
Source : opennet.ru
