Après cinq mois de développement la publication du gestionnaire système . Le nouveau version prend en charge la suspension des unités, la possibilité de vérification de l'image du disque racine par signature numérique, le support de la compression des journaux et des core dumps en utilisant l'algorithme ZSTD, la possibilité de déverrouiller les répertoires personnels portables à l'aide de tokens FIDO2, et la prise en charge du déverrouillage des partitions Microsoft BitLocker via /etc/crypttab. Le BlackList a été renommé en DenyList.
Principales :
- Ajout du support du contrôleur de ressources freezer basé sur cgroups v2, qui permet d'arrêter les processus et temporairement de libérer certaines ressources (CPU, entrée/sortie, et potentiellement même mémoire) pour effectuer d'autres tâches. La gestion de la suspension et de la reprise des unités s'effectue via la nouvelle commande « systemctl freeze » ou via D-Bus.
- Ajout du support de la vérification de l'image du disque racine par signature numérique. La vérification se fait via de nouveaux paramètres dans les unités de service : RootHash (hachage racine pour la vérification de l'image disque spécifiée par l'option RootImage) et RootHashSignature (signature numérique au format PKCS#7 pour le hachage racine).
- Le gestionnaire PID 1 permet de charger automatiquement des règles AppArmor précompilées (/etc/apparmor/earlypolicy) au début du processus de démarrage.
- De nouveaux paramètres d'unités ont été ajoutés : ConditionPathIsEncrypted et AssertPathIsEncrypted pour vérifier si le chemin spécifié est sur un dispositif bloc utilisant le chiffrement (dm-crypt/LUKS), ainsi que ConditionEnvironment et AssertEnvironment pour vérifier les variables d'environnement (par exemple, définies par PAM ou lors de la configuration de conteneurs).
- Pour les unités *.mount, un paramètre ReadWriteOnly a été mis en place, interdisant le montage d'une partition en mode lecture seule si le montage en lecture-écriture a échoué. Ce mode est configuré dans /etc/fstab à l'aide de l'option « x-systemd.rw-only ».
- Pour les unités *.socket, le paramètre PassPacketInfo a été ajouté, permettant au noyau d'ajouter des métadonnées supplémentaires pour chaque paquet lu à partir du socket (inclut les modes IP_PKTINFO, IPV6_RECVPKTINFO et NETLINK_PKTINFO pour le socket).
- Pour les services (unités *.service), les paramètres CoredumpFilter (définit les sections mémoire à inclure dans les core dumps) et
TimeoutStartFailureMode/TimeoutStopFailureMode (définit le comportement (SIGTERM, SIGABRT ou SIGKILL) lorsque le délai est dépassé lors du démarrage ou de l'arrêt d'un service) sont proposés. - La plupart des options ont été ajoutées avec le support de la spécification de valeurs hexadécimales, définies avec le préfixe « 0x ».
- Différents paramètres de ligne de commande et fichiers de configuration liés à la configuration des clés ou certificats permettent de spécifier le chemin vers les sockets Unix (AF_UNIX) pour transmettre des clés et certificats via des appels aux services IPC, lorsqu'il n'est pas souhaitable de stocker les certificats sur des disques non chiffrés.
- Six nouveaux spécificateurs ont été ajoutés, pouvant être utilisés dans les unités, tmpfiles.d/, sysusers.d/ et d'autres fichiers de configuration : %a pour remplacer l'architecture actuelle, %o/%w/%B/%W pour remplacer les champs d'identifiants dans /etc/os-release, et %l pour remplacer le nom d'hôte court.
- Dans les fichiers d'unité, le support de la syntaxe « .include » a été supprimé, cette dernière étant déclarée obsolète depuis 6 ans.
- Dans les paramètres StandardError et StandardOutput, le support des valeurs « syslog » et « syslog-console » a été supprimé, ces dernières étant automatiquement converties en « journal » et « journal+console ».
- Pour les points de montage automatiquement créés sur la base de tmpfs (/tmp, /run, /dev/shm, etc.), des limites sur la taille et le nombre d'inodes ont été établies, correspondant à 50 % de la taille de la RAM pour /tmp et /dev/shm, et 10 % de la RAM pour les autres.
- De nouveaux paramètres de ligne de commande du noyau ont été ajoutés : systemd.hostname pour définir le nom d'hôte au début du démarrage, udev.blockdev_read_only pour restreindre tous les appareils de blocs liés aux supports physiques en mode lecture seule (pour annuler sélectivement, vous pouvez utiliser la commande « blockdev —setrw »), systemd.swap pour désactiver l'activation automatique de la partition d'échange, systemd.clock-usec pour configurer l'horloge système en microsecondes, systemd.condition-needs-update et systemd.condition-first-boot pour redéfinir les vérifications ConditionNeedsUpdate et ConditionFirstBoot.
- Par défaut, la valeur de sysctl fs.suid_dumpable est fixée à 2 (« suidsafe »), permettant la sauvegarde des core dumps pour les processus avec le drapeau suid.
- Le fichier /usr/lib/udev/hwdb.d/60-autosuspend.hwdb a été emprunté de la base de données du matériel de ChromiumOS, incluant des informations sur les appareils PCI et USB qui prennent en charge le passage en mode veille automatique.
- Dans networkd.conf, le paramètre ManageForeignRoutes a été ajouté, et lorsqu'il est activé, systemd-networkd commencera à gérer toutes les routes définies par d'autres utilitaires.
- La section «[SR-IOV]» a été ajoutée aux fichiers .network pour configurer les dispositifs réseau prenant en charge SR-IOV (Single Root I/O Virtualization).
- Dans systemd-networkd, le paramètre IPv4AcceptLocal a été ajouté à la section «[Network]» pour permettre la réception de paquets sur l'interface réseau en provenance d'une adresse source locale.
- Dans systemd-networkd, la possibilité de configurer les disciplines de priorisation de trafic HTB via les sections [HierarchyTokenBucket] et
[HierarchyTokenBucketClass], «pfifo» via [PFIFO], «GRED» via [GenericRandomEarlyDetection], «SFB» via [StochasticFairBlue], «cake»
via [CAKE], «PIE» via [PIE], «DRR» via [DeficitRoundRobinScheduler] et
[DeficitRoundRobinSchedulerClass], «BFIFO» via [BFIFO],
«PFIFOHeadDrop» via [PFIFOHeadDrop], «PFIFOFast» via [PFIFOFast], «HHF»
via [HeavyHitterFilter], «ETS» via [EnhancedTransmissionSelection],
«QFQ» via [QuickFairQueueing] et [QuickFairQueueingClass]. - Dans systemd-networkd, le paramètre UseGateway a été ajouté à la section [DHCPv4] pour désactiver l'utilisation des informations de passerelle reçues via DHCP.
- Dans systemd-networkd, les sections [DHCPv4] et [DHCPServer] ont ajouté le paramètre SendVendorOption pour définir et traiter les options supplémentaires du fournisseur.
- Dans systemd-networkd, un nouvel ensemble d'options a été implémenté dans la section [DHCPServer], notamment EmitPOP3/POP3, EmitSMTP/SMTP et EmitLPR/LPR, pour ajouter des informations sur les serveurs POP3, SMTP et LPR.
- Dans systemd-networkd, le paramètre VLANProtocol a été ajouté à la section [Bridge] dans les fichiers .netdev pour choisir le protocole VLAN utilisé.
- Dans systemd-networkd, le paramètre Group a été implémenté dans la section [Link] des fichiers .network pour gérer le groupe de liaisons.
- Les paramètres BlackList ont été renommés en DenyList (la gestion de l'ancien nom est conservée pour assurer la compatibilité ascendante).
- Dans systemd-networkd, un grand nombre de paramètres liés à IPv6 et DHCPv6 a été ajouté.
- Dans networkctl, la commande «forcerenew» a été ajoutée pour forcer la mise à jour de toutes les liaisons d'adresses (lease).
- Dans systemd-resolved, il est désormais possible de spécifier un numéro de port et un nom d'hôte pour la vérification du certificat DNS-over-TLS dans les paramètres DNS. Le support de la vérification SNI a été ajouté à l'implémentation de DNS-over-TLS.
- Dans systemd-resolved, la possibilité de configurer le redirectionnement des noms DNS à un seul composant (single-label, composé d'un seul nom d'hôte) a été ajoutée.
- Dans systemd-journald, le support de l'algorithme zstd pour la compression de grands champs dans les journaux a été assuré. Des mesures ont été prises pour protéger contre les collisions dans les tables de hachage utilisées dans les journaux.
- Dans journalctl, des URL cliquables avec des liens vers la documentation ont été ajoutées lors de l'affichage des messages du journal.
- La configuration Audit a été ajoutée à journald.conf pour gérer l'activation de l'audit lors de l'initialisation de systemd-journald.
- La possibilité de compresser les fichiers core avec l'algorithme zstd a été ajoutée à systemd-coredump.
- Une option UUID a été ajoutée à systemd-repart pour attribuer un UUID à une partition créée.
- Dans le service systemd-homed, qui gère les répertoires personnels mobiles, la possibilité de déverrouiller les répertoires personnels à l'aide de tokens FIDO2 a été ajoutée. Le backend de cryptage des partitions LUKS prend désormais en charge le retour automatique des blocs vides du système de fichiers à la fin de la session. Une protection contre le double chiffrement des données a été ajoutée si il est défini que le cryptage est déjà appliqué à la partition /home dans le système.
- Des options ont été ajoutées à /etc/crypttab : «keyfile-erase» pour supprimer la clé après utilisation et «try-empty-password» pour tenter de déverrouiller la partition avec un mot de passe vide avant de demander un mot de passe à l'utilisateur (utile pour l'installation d'images cryptées avec la définition du mot de passe après le premier démarrage, et non pendant l'installation).
- Dans systemd-cryptsetup, le support du déverrouillage des partitions Microsoft BitLocker à l'aide de /etc/crypttab a été mis en œuvre au démarrage. La possibilité de lire
les clés pour le déverrouillage automatique des partitions à partir des fichiers /etc/cryptsetup-keys.d/.key et /run/cryptsetup-keys.d/.key a également été ajoutée. - Un générateur systemd-xdg-autostart-generator a été ajouté pour créer des fichiers unit à partir de fichiers de lancement automatique .desktop.
- La commande «reboot-to-firmware» a été ajoutée dans «bootctl».
- Des options ont été ajoutées à systemd-firstboot : «—image» pour spécifier l'image disque à démarrer, «—kernel-command-line» pour initier le fichier /etc/kernel/cmdline, «—root-password-hashed» pour définir le hachage du mot de passe root et «—delete-root-password» pour supprimer le mot de passe root.
Source : opennet.ru
