Syndiquer le contenu
Mis à jour : il y a 3 heures 19 min

Sortie de Wireshark 1.12.1

8 octobre, 2014 - 06:38

Une nouvelle version mineure (1.12.1) est disponible depuis quelques jours, elle corrige une trentaine de bugs/anomalies découverts suite à la version majeure 1.12 de cet été !
Avec un peu de retard, une liste des nouveautés/changements arrivés avec cette version 1.12 et un point sur le futur de Wireshark…
Un rappel pour commencer : Wireshark est l'analyseur de protocole de réseau le plus populaire du monde ! Et de plus, il est multi-plateforme (avec notamment GNU/Linux, *BSD, Mac OS X et Windows).

Protocoles

Environ une centaine de nouveaux protocoles ont été ajoutés à la version 1.12 dont QUIC, SPDY, OpenFlow, CARP… ou encore HTTP2.

Concernant HTTP2, le protocole est maintenant devenu binaire donc plus difficile à analyser directement et il faut donc des outils pour l’analyser et le débuguer. De plus, les en-têtes sont compressées via le protocole HPACK, cela permet d’optimiser la bande passante. Wireshark utilise la bibliothèque nghttp2 pour décompresser les en-têtes.
Wireshark 1.12 prend en charge la version 13 du draft HTTP2, il est sorti depuis une version 14, mais elle est en partie incompatible avec l’ancien draft. La version 14 est déjà prise en charge dans la version de dev de Wireshark.

Il y a eu aussi un grand nombre d’améliorations dans les dissectors existants :

  • WiFI : Gestion du 802.11ad, VHT (802.11ac) ;
  • USB : Gestion du MAUSB ;
  • NTP : Gestion de monlist ;

Certains ont été en partie réécrits : BGP, DNS (prise en charge normalement complète..), NLB, OSPF, Skinny, LLDP…
La liste des changements est trop longue… (Plus de 6000 commits depuis la version précédente majeure…).

Interface utilisateur

Concernant les nouvelles fonctionnalités graphiques, une des principales fonctionnalités est « Export PDU ».

Cela permet de réaliser un export uniquement du contenu (PDU) d‘un paquet avec un entête minimal (adresse IP src/dst, protocole). On l’utilise dans le cas de protocole encapsulé, les uns dans les autres ou encore pour diffuser une capture de flux déchiffré. Pour cela, on réalise la capture et on déchiffre avec la clé privée, puis on réalise un export PDU, on récupère uniquement le trafic déchiffré. Pas besoin de diffuser la clé privée avec la capture.

Wireshark Qt :

En travaux depuis deux ans et annoncé officiellement en octobre dernier, Wireshark avec le Framework Qt continue son chemin ! Un certain nombre de fenêtres a déjà été porté (About, Capture Interfaces, Conversation, IO, Graph Follow, Export PDU…).

Certaines de ces fenêtres (Follow, Summary) ont été réalisées par un étudiant français lors du GSoC’13 et incluses dans la branche master.
Il a été aussi mis en place une traduction de l’interface graphique, une première traduction française est déjà incluse (mais elle nécessite une mise à jour et relecture…).

L’installateur Windows inclut une version « Preview » de cette nouvelle interface et pour les utilisateurs de Linux Debian, une version qt est disponible dans unstable grâce à notre nouveau Debian Developer.

Workflow

Le début d’année a été marqué par de grands changements dans le workflow de développement de Wireshark. En effet, nous sommes passés de subversion (svn) à Gerrit/Git après une période de transition compliquée pour certains… Les retours sont très positifs ! Surtout grâce à Gerrit qui nous a permis d’avoir un outil pour la relecture de code.

Concernant git, il y a un miroir disponible sur GitHub mais les pull requests ne sont pas acceptées (il faut passer obligatoirement par Gerrit).

En plus de nos différentes branches de build automatisé (via buildbot), il a aussi été mis en place un buildbot dédié à Gerrit, qui nous permet de réaliser un certain nombre de tests automatisés avant l’inclusion dans la branche master. Cela a permis de gagner en stabilité dans la branche master (elle est de plus en plus rarement cassée). Afin de sécuriser cette plateforme de test, il a aussi été utilisé des images AWS EC2 (Ubuntu & Windows) qui sont réinitialisées à chaque build.

Feuille de route

Il est prévu que la prochaine version de Wireshark soit la version 2.0 avec par défaut l’interface Qt !
Il y aura aussi de nouveaux protocoles analysés, déjà une dizaine de nouveaux protocoles pris en charge depuis le début de l’été et, bien sûr, des améliorations sur les protocoles déjà pris en charge.

Sharkfest

Une dernière information concernant le Sharkfest, la conférence développeur et utilisateur de Wireshark, qui cette année elle avait lieu sur le beau campus de la Dominican University of California, au nord de San Francisco. Les vidéos et présentations sont disponibles sur le site officiel.

Je vous recommande les vidéos de Vinton Cerf (Co-inventeur de TCP/IP), Gerald Combs (auteur originel de Wireshark) et Laura Chapell sur le futur de Wireshark (à l’intérieur de Wireshark 2.0).

Les premières informations concernant le Sharkfest’15 sont disponibles depuis quelques jours, il aura lieu au Musée de l’informatique (CHM) à Mountain view du 22 au 25 juin.

Il y a aussi des bruits concernant une édition d’une Sharkfest en Europe pour le début de l’année prochaine…

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Wayland et Weston 1.6

7 octobre, 2014 - 11:23

Wayland et son implémentation de référence Weston sont sortis en version 1.6 le 19 septembre 2014.

Sous GNU/Linux et BSD (entre autres), lorsqu’une application veut afficher quelque chose à l’écran, elle doit utiliser le protocole X11 pour communiquer avec X.Org. Mais X.Org est vieux, pas vraiment adapté au matériel moderne ni très sécurisé.

Wayland est le nom du projet, du protocole conçu pour remplacer X11 et d’une bibliothèque qui l’implémente. Une partie du travail qui était réalisé par X.Org devra désormais l’être par le compositeur, dans la plupart des cas le gestionnaire de fenêtres. Weston est une implémentation de référence d’un compositeur pour démontrer les capacités des protocoles (Wayland, xdg-shell…) et des bibliothèques utilisées (libxkbcommon, libinput…).

Wayland
  • ajout de l’énumération des erreurs dans wl_surface ;
  • ajout des informations sur la répétition du clavier dans le protocole wl_keyboard ;
  • ajout pour la récupération d’erreur dans libwayland-client : quand il y a une erreur dans le protocole, le programme peut demander des informations plus détaillées à propos de l’erreur. C’est surtout utile lors des tests pour s’assurer que ce sont les bonnes erreurs ;
  • wl_display_add_socket_auto() dans libwayland-server trouve automatiquement un nom de chaussette libre [oui, c’est de socket, mais ça fait rire le modérateur] ;
  • plein de tests ajoutés à la suite make check, dont un cadriciel pour tester les interactions client‐serveur plus facilement (en rapport avec des corrections de bogues de parallélisation et de blocage) ;
  • ajout de wl_display_roundtrip_queue() pour bloquer les round‐trips dans une file d’attente personnalisée ;
  • suppression de l’exposition globale du binding wl_display, ça aurait déclenché des bogues, et on n’en a pas d’utilisation correcte.
Weston
  • changement du protocole xdg-shell (compatibilité cassée par rapport à la 1.5.0) ;
  • ajout d’un mécanisme de masquage pour weston-layer ;
  • dorsal (backend) DRM : récupération de la taille du curseur depuis le noyau ;
  • gestion configurable du taux de répétition du clavier, envoyé du compositeur au client ;
  • ajout de wl_display_add_socket_auto() pour ne plus avoir besoin d’indiquer la chaussette (la socket) pour lancer Weston dans Weston ;
  • utilisation de libinput par défaut. Le dorsal qui n’utilise pas libinput est toujours là, mais sera supprimé pour la 1.7 ;
  • un peu de configuration supplémentaire pour le desktop-shell ;
  • make distcheck fonctionne maintenant sans bidouillage (en désactivant le test de xwayland pour distcheck pour le moment) ;
  • quitter Weston si weston-desktop-shell meurt trop tôt. Cela devrait régler certains problèmes d’écrans noirs ;
  • option pour forcer l’activation du verrouillage numérique au démarrage pour les dorsaux DRM et fbdev ;
  • plein de corrections (évidemment).
Versions suivantes

Le cycle de développement de la 1.7 commence la semaine prochaine. Le programme jusqu’à la version 1.7.0 est :

  • 1.7-alpha à la mi‐janvier 2015 (autour du 16) pour que les gens aient un ou deux week‐ends après les vacances pour pousser les travaux de dernière minute. C’est le dernier délai pour les grosses fonctionnalités ;
  • 1.7-rc1 autour du 30 janvier. Au‐delà de cette date, seules les corrections seront acceptées ;
  • 1.7-rc2 autour du 6 février ;
  • 1.7.0 publiée autour du vendredi 13 février. Oups !
Télécharger ce contenu au format Epub

Lire les commentaires

Conférence Les communs numériques - mercredi 15 octobre à Digne

7 octobre, 2014 - 07:47


Image : Creative Commons a vessel ideas, perpetualplum, licence Creative Commons BY-SA

L'encyclopédie Wikipédia se décline aujourd'hui dans 287 langues totalisant plus de 33 millions d'articles. La base de données cartographique OpenStreetMap a fêté ses 10 ans cette année et reçoit chaque jour les contributions de quelques 3 000 internautes. En 2012, Wiki Loves Monuments a été officiellement reconnu comme le plus grand concours de photographie du monde !

Sur quelles bases juridiques, économiques et sociales se développent ces projets collaboratifs à l'échelle planétaire ? Quelles sont les opportunités pour nos territoires ? Quels sont les enjeux citoyens de ces communs numériques ? Quels sont leurs liens avec le mouvement de l'opendata dans le cadre duquel administrations et collectivités libèrent massivement les données publiques à leur disposition ?

APITUX s'implique dans les communautés du logiciel libre depuis 1997. Il répond aujourd'hui à l'invitation du Conseil de développement du Pays dignois pour nous parler de ce mouvement que certains chercheurs qualifient d'utopie concrète et qui pourrait bien changer durablement les rapports que nous entretenons avec le numérique. Rendez-vous mercredi 15 octobre à 18h, dans l'amphithéâtre de l'IUT, 19 boulevard Saint-Jean Chrysostome à Digne.

Entrée libre et gratuite pour tous.

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse - octobre 2014

6 octobre, 2014 - 20:24

L'automne s'est finalement installé et des magazines ont rempli les rayons des marchands de journaux …

Planète LINUX n°81 propose un petit tour d'horizon sur des distributions Linux récentes et moins connues du grand public comme Linux Lite 2.0, LXLE 14.04, Linux Mint 17 et CentOS 7. On y trouve également un dossier sur l'optimisation d'un système Linux et un autre sur les applications Android pour l'administration système.

Linux Pratique n°85 vous propose de réaliser votre propre installation domotique (avec Domogik). Par ailleurs, les débutants y trouveront comment gérer les archives en ligne de commande ainsi qu'une initiation à SQL. Les plus chevronnés apprécieront le dossier sur l'auto-hébergement avec Apache.

GNU/Linux Magazine n°175 a l'ambition de vous apprendre à créer votre propre langage de programmation. Si ce développement ne vous intéresse pas, vous y trouverez également entre autres choses, le détail des nouveautés de la prochaine version de PostgreSQL, ainsi qu'une introduction au Network Monitoring System.

Hors-séries, les éditions Diamond viennent également de publier deux mooks :

  • Administration système Linux (le guide pour faire vos premier pas en tant que sysadmin)
  • Systèmes BSD (le guide pour installer et bien administrer vos systèmes BSD).

Les sommaires complets des magazines sont en ligne.

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 40 de l'année 2014

6 octobre, 2014 - 15:52

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[Numerama] Victoire contre le vote par Internet à l'Assemblée Nationale

Par Guillaume Champeau, le vendredi 3 octobre 2014. Extrait:

Mercredi, les députés de la commission des lois de l'Assemblée Nationale ont rejeté une proposition de loi qui devait étendre le vote par Internet à l'élection présidentielle, pour les Français établis hors de France. Les députés ont pris conscience du danger d'un scrutin aussi opaque, et commencent à envisager un retrait total.

Lien vers l'article original: http://www.numerama.com/magazine/30800-victoire-contre-le-vote-par-internet-a-l-assemblee-nationale.html

[Next INpact] Le bras d'honneur de la Hadopi à Fleur Pellerin et aux ayants droit

Par Marc Rees, le jeudi 2 octobre 2014. Extrait:

La Hadopi vient de modifier son budget prévisionnel pour le dernier trimestre 2014. Alors que Fleur Pellerin veut réduire sa voilure budgétaire afin que la Rue du Texel se concentre sur la riposte graduée, celle-ci lui a adressé un joli pied-de-nez.

Lien vers l'article original: http://www.nextinpact.com/news/90231-le-bras-dhonneur-hadopi-a-fleur-pellerin-et-aux-ayants-droit.htm

Et aussi:

[Le Monde.fr] Shellshock, la faille de sécurité majeure découverte «presque par hasard» par un Français

Par Yves Eudes, le jeudi 2 octobre 2014. Extrait:

Les failles de sécurité informatiques sont un problème courant, mais la dernière en date, baptisée «Shellshock», est loin d'être anodine. Rendue publique le 26 septembre, elle a été trouvée dans le programme Bash, une pièce maîtresse de Unix, lui-même à la base du système d'exploitation libre et gratuit GNU/Linux, qui équipe près de 70 % des serveurs Internet dans le monde. Plus précisément, Bash est un shell, une interface qui traduit les lignes de commande tapées sur le clavier en un langage compréhensible par le système d'exploitation.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/10/02/shellshock-la-faille-de-securite-majeure-decouverte-presque-par-hasard-par-un-francais_4498904_4408996.html

Et aussi:

Voir aussi:

[La Tribune de Diego] Campus Numérique Francophone d’Antsiranana: journée du logiciel libre

Par la rédaction, le jeudi 2 octobre 2014. Extrait:

La journée du logiciel libre est une manifestation mondiale annuelle instaurée en 2004 dans le but d'initier le public au logiciel libre à l'échelle mondiale, par son utilisation personnelle, dans l'éducation, l'économie ou par les gouvernements. Cette journée est l'occasion de militer pour la reconnaissance de la dimension sociale du logiciel libre. Elle était organisée à Antsiranana par les membres du campus numérique francophone d'Antsiranana

Lien vers l'article original: http://latribune.cyber-diego.com/societe/1401-campus-numerique-francophone-dantsiranana--journee-du-logiciel-libre.html

[Numerama] Les signaux très inquiétants du futur commissaire européen au numérique

Par Julien L., le mercredi 1 octobre 2014. Extrait:

Lien vers l'article original: http://www.numerama.com/magazine/30765-les-signaux-tres-inquietants-du-futur-commissaire-europeen-au-numerique.html

Et aussi:

[Direction Informatique] Bonnes pratiques, gouvernance et logiciel libre

Par Jonathan Le Lous, le mercredi 1 octobre 2014. Extrait:

Dans mes deux précédents billets, j’ai discuté de la notion de gouvernance informatique et de ses implications stratégiques. Le choix des technologies, entre autres, repose sur plusieurs éléments: l’application est-elle compatible avec l’existant? Quelles sont les évolutions qui sont envisagées dans le futur – infonuagique, intégration continue, agilité? La solution sera-t-elle compatible avec ces évolutions et à quels coûts?

Lien vers l'article original: http://www.directioninformatique.com/blogue/bonnes-pratiques-gouvernance-et-logiciel-libre/30699

[ZDNet] Dépenses en logiciels de l'Etat: 207 millions d'euros en 2013, pas d'infos sur le libre

Par Louis Adam, le mercredi 1 octobre 2014. Extrait:

La députée Isabelle Attard a posé il y a quelques mois une question au gouvernement afin d’obtenir les chiffres précis des dépenses ministérielles en matière de logiciels. De chiffres précis nulle trace, mais la réponse du gouvernement éclaire un peu les pratiques déployées.

Lien vers l'article original: http://www.zdnet.fr/actualites/depenses-en-logiciels-de-l-etat-207-millions-d-euros-en-2013-pas-d-infos-sur-le-libre-39807151.htm

Et aussi:

[Canal+] Vu à la télé: le lobbying de Microsoft à l'école dévoilé dans un documentaire

Par la rédaction, le mardi 30 septembre 2014. Extrait:

Le 8 septembre a été diffusé sur Canal+ le documentaire «École du futur: la fin des profs?» dans le cadre de l’émission Spécial Investigation. Il nous montre des expériences innovantes dans des classes en France et aux USA, s’intéresse aux marchés des manuels scolaires et accorde une large part à l’offre et aux stratégies commerciales de géants comme Apple ou Microsoft.

Lien vers l'article original: http://www.framablog.org/index.php/post/2014/09/30/microsoft-education-logiciel-libre-video

Et aussi:

[Next INpact] Projet de loi Terrorisme: l'avis de la CNCDH que voulait éviter l'Intérieur

Par Marc Rees, le lundi 29 septembre 2014. Extrait:

Après la Commission des libertés numériques, le Conseil national du numérique, le Syndicat de la Magistrature, la Quadrature du Net, et d’autres, c’est autour de la Commission nationale consultative des droits de l’Homme de rendre un avis au vitriol du projet de loi sur le terrorisme porté par Bernard Cazeneuve. Pour l'occasion, la CNCDH s'est auto-saisie, le ministre de l'Intérieur ayant oublié son existence.

Lien vers l'article original: http://www.nextinpact.com/news/90139-projet-loi-terrorisme-avis-cncdh-que-voulait-eviter-interieur.htm

Et aussi:

Voir aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

pkgsrc 2014Q3 est disponible

6 octobre, 2014 - 10:13

Dans un message à des listes de diffusion pkgsrc et NetBSD, Alistair Crooks a annoncé la disponibilité de la branche pkgsrc-2014Q3. Pkgsrc (prononcer package source) est une infrastructure de construction de logiciels tiers pour NetBSD, ainsi que pour d’autres systèmes de type UNIX. Il permet donc à NetBSD et à d’autres systèmes d’exploitation de disposer de nombreux logiciels sous forme source, mais aussi sous forme binaire.

Les développeurs pkgsrc fournissent une nouvelle version stable chaque trimestre. Comme son nom l’indique, pkgsrc 2014Q3 est donc la troisième sur les quatre de 2014 et est disponible depuis le 2 octobre dernier.

Plus de détails sur cette version en particulier en seconde partie de dépêche, qui reprend grandement le courriel d'annonce.

Si vous ne connaissez toujours pas pkgsrc

À force de publier des dépêches sur le sujet (suivez le tag pkgsrc), espérons que vous commencez à connaître la chanson : pkgsrc, c'est le système de paquets logiciels pour NetBSD, issu d'un fork en 1997 de celui de FreeBSD. Nos amis au drapeau orange étant adeptes de la portabilité, il est logique que leur système de paquets puisse fonctionner ailleurs et compte toujours sa vingtaine de plateformes compatibles, allant des systèmes BSD à Windows (grâce à Cygwin/Interix/Services For Unix) en passant par GNU/Linux, OS X et Solaris.

Les chiffres du trimestre

En termes de paquets, pkgsrc-2014Q3 c’est (avec entre parenthèses la différence avec pkgsrc-2014Q2) :

  • 15186 paquets possibles ;
  • 14741 paquets binaires compilés avec clang pour NetBSD-current/x86_64 (- 154) ;
  • 13120 paquets binaires compilés avec gcc pour SmartOS/i386  (+ 1083) ;
  • 13026 paquets binaires compilés avec gcc pour SmartOS/x86_64 (+ 391) ;
  • 13484 paquets binaires compilés avec gcc pour Linux-2.6.32/x86_64 (+366) ;
  • 11478 paquets binaires compilés avec gcc pour Darwin 10.8.0/i386 (+1495) ;
  • 12363 paquets binaires compilés avec clang pour FreeBSD 10/x86_64 (+ 47).

À noter aussi : 13016 paquets binaires compilés en utilisant dash (et non bash) comme shell pour la plateforme SmartOS/i386.

Ce trimestre, en termes de modifications, il y a eu :

  • 210 paquets ajoutés ;
  • 15 paquets retirés, dont 12 avec un successeur ;
  • 1 123 paquets mis à jour ;
  • 3 paquets ont été renommés.
Les changements

Parmi les ajouts ou mises à jour notables, on peut remarquer :

On dira par contre au revoir à l'ancien subversion-1.6.

Si vous utilisez NetBSD 5.x, sachez que par défaut c'est l'option X11 modulaire qui est utilisée. Cela signifie qu'au lieu d'utiliser la version de X11 qui est dans le système de base, les paquets X11 de pkgsrc, généralement plus récents, seront construits.

Bien entendu, pkgsrc-2014Q3 contient des paquets Bash patchés contre ShellShock. De plus, Christos Zoulas avait effectué un patch pour désactiver les définitions de fonctions dans les variables d'environnement.

Deux jours de rab' !

Pour amener à une nouvelle version de pkgsrc, le calendrier est généralement le suivant :

  • deux mois et demi de mises à jour diverses et variées dans pgksrc-current ;
  • deux semaines de gel (freeze dans la langue de Shakespeare) : durant cette période, les changements qu'on peut qualifier d'intrusifs ou devant être testés en profondeur ne sont pas acceptés dans pgksrc-current, comme par exemple des nouveaux paquets, des mises à jour majeures (si elles ne sont pas motivées par un correctif critique) ou des modifications d'infrastructure ;
  • à la fin de la période de gel, la branche est créée, mais n'est pas figée pour autant : elle bénéficiera de correctifs de sécurité par exemple.

Cette fois-ci, Alistair Crooks a annoncé le 29 septembre dernier deux jours supplémentaires de gel. Deux raisons ont motivé cette décision :

  • beaucoup de changements ont encore lieu dans pkgsrc et peuvent donc nécessiter un peu de temps pour que les tests soient menés correctement ;
  • Shellshock est arrivé durant la période de gel : cela a peut-être plus d'impact qu'on ne le pense.

Le courriel annonçant la décision indique que le but est d'avoir la meilleure branche possible et que prendre un peu plus de temps maintenant sera payant sur le long terme.

Télécharger ce contenu au format Epub

Lire les commentaires

systemd versions 212 à 215

6 octobre, 2014 - 08:59

systemd est un système de démarrage alternatif au démon init d’UNIX System V spécifiquement conçu pour le noyau Linux, avec une meilleure gestion des dépendances entre services et le chargement en parallèle des services au démarrage. Il est publié sous licence GNU LGPL version 2.11.

Voici une version traduite, réarrangée et non exhaustive des notes de version de systemd des versions 212 à 215. En bref, on ajoute un peu de sucre autour ! Vous pouvez même sauter ce qui ne vous intéresse pas.

N. D. M. : cette dépêche est un énorme travail d’eggman et de sinma qui méritent tous les deux des gros remerciements.

Sommaire Version 212 Divers

systemd gère désormais un état global du système qui prend la valeur starting (en cours de démarrage), running (en fonctionnement), degraded (dégradé, c’est‐à‐dire au moins un service en échec), maintenance (mode de restauration ou d’urgence) ou stopping (en train de s’arrêter), que l’on peut consulter avec systemctl status (sans donner de paramètre). Il est notamment utile lorsqu’on manipule beaucoup de systèmes ou de conteneurs à la fois.

Et puis, enfin, un changement visible par l’utilisateur lambda ! Afin d’éviter que celui‐ci se retrouve avec un écran noir au démarrage, systemd évite le réglage le plus sombre et reste au‐dessus des 5 % les plus sombres lors de la restauration de la luminosité.

Côté fonctionnement interne, logind détruit maintenant automatiquement les objets d’IPC (InterProcess Communication, communication interprocessus) appartenant à un utilisateur quand il se déconnecte complètement, pour libérer des ressources. Cela inclut sémaphores, files de messages et mémoires SysV, ainsi que les files de messages et mémoires partagées POSIX. Les objets SysV et POSIX n’ont traditionnellement pas de cycle de vie, cette fonctionnalité corrige cela.

Outils en ligne de commande

Une nouvelle commande list-machines a été ajoutée à systemctl. Elle liste tous les systèmes d’exploitation dans un conteneur ainsi que leurs états (voir le point ci‐dessus), si systemd est utilisé dans ces conteneurs.

systemctl a également été enrichi d’une option -r pour énumérer récursivement les unités de tous les conteneurs locaux, quand il est utilisé avec la commande list-units (c’est l’action par défaut quand aucun paramètre n’est donné).

On notera aussi que machinectl bénéficie d’une nouvelle commande poweroff pour éteindre proprement un conteneur local.

Journal

journald peut transférer les messages de journal sur les pseudo‐terminaux de tous les utilisateurs connectés (équivalent de la commande wall). C’est désormais la configuration par défaut pour tous les messages d’urgence.

Le nouvel outil systemd-journal-remote permet de diffuser à la volée les flux des journaux journald sur le réseau.

Unités

Les unités minuteur (timer units) ont gagné deux nouvelles options :

  • WakeSystem= : si activée, les unités minuteur configurées de cette façon provoqueront la sortie de veille prolongée (si le système le prend en charge, ce qui est majoritairement le cas de nos jours) ;

  • Persistent= : si activée, sauvegarde sur le disque la dernière fois que l’unité a été activée. Cette information permet au redémarrage suivant d’activer les évènements qui auraient dû avoir lieu pendant que le système était éteint (comportement analogue à anacron). La commande list-timers de systemctl a été mise à jour pour afficher cette nouvelle information.

Réseau

Les adresses physiques des interfaces (adresses MAC) créées avec l’option --network-interface= de la commande nspawn sont générées à partir du nom de la machine, ce qui les rend stables entre plusieurs invocations du conteneur.

systemd-networkd alloue désormais des adresses prédictibles en cas d’auto‐configuration avec IPv4LL (IPv4 link-local, une technique qui permet d’assigner une adresse IP automatiquement dans le réseau spécial 169.254.0.0/16, quand il n’y a pas de serveur DHCP).

Découverte automatique des partitions GPT

Le mécanisme de découverte automatique des partitions GPT prend désormais en compte deux indicateurs (flags) sur une partition GPT : l’un provoque son montage en lecture seule et l’autre indique que la partition doit être ignorée pendant la phase de découverte automatique.

Deux nouveaux types d’identifiant universel unique (UUID) pour GPT ont été ajoutés à la découverte automatique de partitions, pour les architectures ARM 32 et 64 bits. Ça n’est pas particulièrement utile pour découvrir le répertoire racine pendant un démarrage bare‐metal (on n’y voit pas souvent d’UEFI), mais c’est quand même très utile pour autoriser le démarrage de disques dans nspawn avec l’option -i.

Sécurité

Le répertoire /sys/fs/cgroup/ est maintenant monté en lecture seule après que tous les arbres de contrôleurs y sont montés. Notez que les répertoires montés dans une sous‐arborescence ne sont pas en lecture seule. Cette mesure de sécurité est particulièrement utile car la glibc effectue une recherche pour prendre tous les pseudo‐systèmes de fichiers tmpfs qu’elle peut trouver pour implémenter shm_open() si /dev/shm n’est pas disponible (ce qui peut très bien être le cas dans un espace de noms donné).

Les options PrivateDevices=, PrivateNetwork= et PrivateTmp= sont maintenant utilisées sur tous les services tournant pendant une longue période (quand c’est approprié). En outre, l’option PrivateDevices= est plus sécurisée (elle ne nécessite plus la capacité CAP_MKNOD et l’ensemble des capacités liées, et implique DevicePolicy=closed).

Désormais, la gestion de kdbus prend en charge la politique de téléchargement dans le noyau. sd-bus peut désormais créer des connexions de surveillance (monitoring) qui peuvent espionner toutes les communications de bus pour déboguer.

udev dans un espace de noms de montage séparé

systemd-udevd va maintenant fonctionner dans un espace de noms de montage séparé. Pour bien comprendre, quelques explications s’imposent.

udev est un programme qui permet à l’ordinateur d’effectuer automatiquement certaines actions en fonction d’évènements liés au matériel (par exemple, monter automatiquement une clef USB lorsqu’elle est branchée à l’ordinateur). Les actions à effectuer sont déterminées grâce à des règles udev (des fichiers .rules habituellement fournis par la distribution, bien qu’il soit possible de les créer soi‐même). Or, ces règles permettent d’activer un programme ou un script arbitraire, via une ligne du type RUN+="mon_executable". Pour monter une clef USB, on fera appel au programme mount, par exemple.

Les espaces de noms de montage permettent de montrer une organisation du système différente (points de montage différents, ou passage de certains montages en lecture seule) pour certains processus. C’est notamment utile pour sécuriser les conteneurs.

Depuis quelques versions, il est recommandé de passer par l’activation d’un service systemd au lieu de l’utilisation de mount ; ça sera désormais obligatoire pour monter un périphérique. On utilisera donc : ENV{SYSTEMD_WANTS}="systemd_unit.service".

Amélioration du code

La prise en charge native de tcpwrap dans systemd a été supprimée. C’était du vieux code plus vraiment maintenu et qui avait de sérieux défauts. De meilleures alternatives existent, telles que les pare‐feux.

Pour les configurations qui nécessitent l’utilisation de tcpwrap, veuillez envisager d’invoquer votre service activé par socket via tcpd, comme avec le traditionnel inetd.

Version 213 Outils en ligne de commande

Concernant systemctl, les commandes systemctl list-timers et systemctl list-sockets disposent maintenant de l’option --recursive qui permet de lister les unités du type donné dans tous les conteneurs locaux, à l’instar de systemctl list-units.

Désormais, le générateur de graphe du démarrage (pour rappel : systemd-analyze plot) peut inclure les informations cgroups.

Le (petit) démon systemd-hostnamed a été mis à jour pour exposer le nom du noyau, sa variante et sa version sur le bus. C’est utile lorsque l’on exécute des commandes telles que hostnamectl avec l’option -H. systemd-analyze se sert de cette option pour afficher correctement les détails du système, lorsque l’exécution est distante.

Enfin, machined dispose d’une nouvelle interface de programmation (API) pour interroger les adresses IP des conteneurs enregistrés. machinectl status a été mis à jour pour afficher ces adresses dans sa sortie.

Unités

Cette fois, les unités de type service ont gagné beaucoup d’options pour permettre un contrôle beaucoup plus fin du comportement et des limitations de celles‐ci :

  • RebootArgument= peut être utilisé pour définir un argument de redémarrage pour le noyau, à utiliser si l’on déclenche un redémarrage avec StartLimitAction= ;

  • FailureAction= peut être utilisé pour définir une opération à déclencher quand un service échoue : ce paramètre fonctionne de façon similaire à StartLimitAction=, mais, contrairement à celui‐ci, il vérifie ce qui est effectué immédiatement, plutôt qu’après plusieurs essais de redémarrage du service ;

  • si CPUQuota= est activé, le service ne pourra jamais obtenir plus de temps processeur que le pourcentage indiqué, même si la machine est inoccupée ;

  • StartupCPUShares= et StartupBlockIOWeight= fonctionnent de façon similaire à CPUShares= et BlockIOWeight=, mais s’appliquent uniquement au démarrage du système ; ces deux options sont utiles pour assigner des priorités différentes à certains services pendant le démarrage et pendant l’exécution normale.

Dorénavant, l’analyseur de fichiers de configuration (.ini) ignorera les sections qui commencent par X-. Elles peuvent être utilisées pour maintenir des sections spécifiques à certaines applications dans les fichiers unités.

Réseau

Cette nouvelle version accueille un nouveau démon : systemd-timesyncd. C’est un client SNTP. Contrairement à un client NTP, il s’occupe simplement d’interroger un serveur distant et de mettre à jour l’heure de la machine (il est uniquement client, et non serveur).

systemd-timesyncd tourne avec des privilèges minimaux et n’agit que lorsqu’une connexion Internet est disponible. Il peut corriger l’heure tôt dans le processus de démarrage, ce qui est utile pour les systèmes comme le Raspberry Pi et d’autres appareils embarqués qui n’ont pas d’horloge temps réel.

systemd-networkd gère maintenant les tunnels IPIP et SIT, et se dote d’un nouveau compagnon, le démon minimal systemd-resolved. Il agit pour le moment comme simple compagnon à systemd-networkd et gère le resolv.conf en se basant sur la configuration DNS par interface, potentiellement obtenue via DHCP. À long terme, nous espérons l’étendre à la gestion d’un cache DNS gérant DNSSEC et mDNS.

Petite subtilité, systemd-networkd-wait-online est dorénavant activé par défaut. Il retarde network-online.target jusqu’à ce qu’une interface réseau ait été configurée. Cet outil est conçu pour fonctionner avant tout avec networkd, mais fera son possible pour donner du sens à une configuration réseau effectuée par d’autres moyens.

Autre subtilité, hostnamed a été modifié pour préférer le nom d’hôte configuré statiquement dans /etc/hostname à celui éventuellement fourni par DHCP. Cela correspond mieux au fonctionnement global de /etc, où la configuration de l’administrateur prévaut sur n’importe quelle autre.

Autre

La nouvelle option du noyau fsck.repair= contrôle comment fsck doit se comporter avec un système de fichiers incohérent au démarrage.

Version 214

Voilà la version 214 ! Truffée de nouvelles fonctionnalités et d’améliorations dans tous les domaines, en particulier en sécurité (service de bac à sable — sandboxing — de systèmes de fichiers, diminution des privilèges de nos démons), en réseau (trois nouveaux types d’interfaces sont dorénavant pris en charge par networkd) et dans les unités socket (quatre nouveaux réglages).

Le changement que je trouve le plus excitant : un premier pas dans la direction d’un système sans état. Dorénavant, /var est reconstruit s’il est vide au démarrage. Ma nouvelle commande favorite faisant appel à ça est la suivante :
systemd-nspawn -D /srv/mycontainer --read-only --tmpfs=/var -b.

Elle engendre un conteneur nspawn avec une arborescence montée en lecture seule et un dossier /var volatile et vide, monté par dessus et vidé lorsque l’on arrête le conteneur. Avec ces éléments en place, on peut facilement lancer des centaines d’instances de conteneurs ad hoc jetables depuis la même arborescence, en étant sûr qu’elles se terminent sans interférer les unes avec les autres. Prochaine étape (planifiée pour la prochaine version) : ajouter l’infrastructure pour gérer également le démarrage avec /etc vide (c’est‐à‐dire, avec une racine en tmpfs et seulement un /usr monté depuis l’arborescence d’une distribution en lecture seule).

Outils en ligne de commande Unités

Les unités sockets ont gagné beaucoup d’options :

  • SocketUser= et SocketGroup= : indiquent le propriétaire et le groupe à utiliser pour les sockets AF_UNIX et les files d’attente FIFO sur le système de fichiers ;
  • RemoveOnStop= : si activé, tous les FIFO et les sockets sur le système de fichiers seront retirés quand l’unité correspondante est arrêtée ;
  • Symlinks= : prend une liste de liens symboliques à créer (sur le système de fichiers) des sockets système ou des FIFO créés par les sockets UNIX correspondants. Cette option est utile pour gérer les liens symboliques vers des fichiers sockets ayant le même cycle de vie que le socket lui‐même.

Concernant les unités de services, on gagne deux nouvelles options : ProtectedHome= et ProtectedSystem=. Elles rendent les données utilisateur (comme /home) inaccessibles ou en lecture seule, et le système (comme /usr) en lecture seule pour des services particuliers. Cela nous permet d’avoir un système de bac à sable très léger. Ces options ont été activées pour tous les services tournant pendant une longue période, quand c’est approprié.

De plus, l’effet de plusieurs paramètres pour les services a changé :

  • L’option on-abnormal a été ajoutée à Restart=. Si elle est définie, elle aura pour effet de déclencher des redémarrages automatiques pour toute raison « anormale » de fin d’un processus, ce qui inclut signaux d’erreur, vidanges mémoires, expirations de délai et expirations de délai de chien de garde (watchdog), mais exclut les codes de sortie propres ou non, ainsi que les signaux propres. Restart=on-abnormal est une alternative à Restart=on-failure pour les services qui doivent pouvoir s’arrêter et ne pas redémarrer lors de certaines erreurs en le signalant par un code de sortie d’erreur adéquat. Restart=on-failure ou Restart=on-abnormal est maintenant le réglage par défaut recommandé pour tous les services tournant pendant une longue période.

  • Si le réglage de l’option InaccessibleDirectories= pointe vers un point de montage (ou si le répertoire pointé contient lui‐même un point de montage), systemd essaiera de démonter totalement l’arborescence pour rendre les systèmes de fichiers vraiment indisponibles pour le service concerné.

  • Le réglage ReadOnlyDirectories= et le paramètre --read-only de systemd-nspawn sont dorénavant aussi appliqués de façon récursive à tous les sous‐points de montage.

Enfin, deux autres changements concernant les unités :

  • le socket /dev/log et la FIFO /dev/initctl ont été déplacés vers /run et ont été remplacés par des liens symboliques. Cette modification permet de se connecter à elles même si PrivateDevices=yes est utilisé pour un service — ce qui rend /dev/log inatteignable mais laisse /run accessible. Cette option a l’avantage de s’assurer que /dev contient uniquement des périphériques, des répertoires, des liens symboliques et rien d’autre ;

  • une nouvelle unité cible (target) a été ajoutée : network-pre.target. Elle est utile pour les services qui doivent être exécutés avant que le réseau ne soit configuré, par exemple les scripts de pare‐feu.

Réseau

systemd-networkd, systemd-resolved et systemd-bus-proxyd tournent maintenant sous leurs propres utilisateurs homonymes. Ils ne conservent que quelques capacités, mais ne peuvent cependant plus écrire dans des fichiers appartenant au super utilisateur root.

systemd-networkd gère maintenant la mise en place de périphériques Ethernet virtuels veth pour la connectivité des conteneurs, ainsi que les tunnels GRE et VTI.

Le fichier resolv.conf généré par systemd-resolved a été déplacé dans /run/systemd/resolve/. Si avez un lien symbolique depuis /etc/resolv.conf, il faudra peut‐être le corriger.

Amélioration du code

La dépendance à libattr a été éliminée. Les appels pour les attributs étendus ont depuis longtemps été déplacés dans la glibc, rendant libattr inutile.

La prise en charge des scripts init SysV et LSB a été supprimée du démon systemd lui‐même. À la place, un générateur crée des unités systemd natives lorsque nécessaire. Cela a permis de supprimer une portion non négligeable de code de compatibilité de « PID 1 », suivant ainsi les distributions, qui aujourd’hui ne livrent qu’un tout petit nombre de scripts init LSB ou SysV.

Virtualisation

Deux changements concernant la virtualisation :

  • la détection de la virtualisation fonctionne maintenant sans privilèges. systemd-detect-virt ne nécessite donc plus la capacité CAP_SYS_PTRACE et nos démons peuvent ainsi fonctionner avec moins de privilèges ;

  • les domaines privilégiés Xen (dom0) ne sont plus considérés comme de la virtualisation par la logique de détection de virtualisation. Après tout, ils ont en général un accès total au matériel et sont d’ordinaire utilisés pour gérer des domaines non privilégiés (domU).

Autres

À titre de fonctionnalité expérimentale, udev essaie désormais de verrouiller un périphérique disque lorsqu’il exécute des évènements pour ce disque ou l’une de ses partitions. Des applications telles que les programmes de partitionnement de disque peuvent verrouiller le disque et réclamer temporairement la propriété du périphérique de cette façon et udev ignorera complètement tous les évènements pour ce disque ou cette partition. Si le disque a été ouvert en écriture, la fermeture déclenchera une analyse de la table de partition. Ce comportement est dorénavant activé par défaut ; s’il s’avère qu’il cause d’importants problèmes, nous pourrions l’activer uniquement pour quelques périphériques particuliers ou le désactiver complètement. Ce comportement ne prend pas en compte les périphériques virtuels (device-mapper).

Des unités mount temporaires peuvent maintenant être créées par les interfaces de programmation (API) du bus.

Un bout de code tmpfiles pour recréer la structure la plus élémentaire de /var est maintenant disponible. Il est suffisant pour créer le lien symbolique /var/run → /run et créer une série de répertoires structurels. Ça permet au système de démarrer avec un /var vide ou volatile. Évidemment, si grâce à ce changement le système d’exploitation de base est dorénavant capable de faire face à un /var volatile, tous les services utilisateurs n’y sont pas encore prêts. Cependant, nous espérons que tôt ou tard, de nombreux démons de services seront modifiés en amont, de façon à créer automatiquement au démarrage les répertoires nécessaires dans /var, s’ils devaient manquer. Il s’agit d’un premier pas vers un système sans état qui nécessite uniquement une image de la distribution sur /usr pour démarrer.

systemd-nspawn dispose désormais d’une nouvelle option --tmpfs= pour monter une instance tmpfs vide sur un répertoire particulier. C’est particulièrement utile pour la reconstruction automatique de /var (voir ci‐dessus), en passant --tmpfs=/var.

Le groupe floppy [N. D. T. : disquette] qui possédait les périphériques /dev/fd* n’est plus utilisé. Le groupe disk est utilisé à la place. Les distributions devraient probablement déconseiller l’utilisation de ce groupe.

Version 215

Beaucoup de travail pour rendre fonctionnels la remise aux paramètres d’usine, les systèmes sans état et les mises à jour hors‐ligne. Beaucoup de travail autour de networkd (serveur DHCP 4 !), enfin coredumpctl est maintenant vraiment utile.

Outils en ligne de commande

Cette fois‐ci, deux nouvelles commandes :

  • systemctl is-system-running : permet de vérifier l’état général du système, par exemple s’il a fini de démarrer et est pleinement opérationnel ;

  • la nouvelle page man file-hierarchy(7) contient une version raccourcie et modernisée de l’organisation du système de fichiers attendue par systemd, semblable à la spécification FHS ou la page de man hier(5). Le nouvel outil systemd-path(1) a été ajouté pour afficher plusieurs de ces chemins concernant la machine locale et l’utilisateur local.

Par exemple, systemd-path retourne chez moi :

temporary: /tmp temporary-large: /var/tmp system-binaries: /usr/bin system-include: /usr/include system-library-private: /usr/lib system-library-arch: /usr/lib system-shared: /usr/share system-configuration-factory: /usr/share/factory/etc system-state-factory: /usr/share/factory/var system-configuration: /etc system-runtime: /run system-runtime-logs: /run/log system-state-private: /var/lib system-state-logs: /var/log system-state-cache: /var/cache system-state-spool: /var/spool user-binaries: /home/sinma/.local/bin user-library-private: /home/sinma/.local/lib user-library-arch: /home/sinma/.local/lib/x86_64-linux-gnu user-shared: /home/sinma/.local/share user-configuration: /home/sinma/.config user-runtime: /run/user/1000 user-state-cache: /home/sinma/.cache user: /home/sinma user-documents: /home/sinma/documents/ user-music: /home/sinma/musique/ user-pictures: /home/sinma/images/ user-videos: /home/sinma/vidéos/ user-download: /home/sinma/téléchargements/ user-public: /home/sinma/ user-templates: /home/sinma/modèles user-desktop: /home/sinma/ search-binaries: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/sinma/.cabal/bin search-library-private: /home/sinma/.local/lib:/usr/local/lib:/usr/lib search-library-arch: /home/sinma/.local/lib/x86_64-linux-gnu:/usr/lib search-shared: /home/sinma/.local/share:/usr/share:/usr/share:/usr/local/share search-configuration-factory: /usr/local/share/factory/etc:/usr/share/factory/etc search-state-factory: /usr/local/share/factory/var:/usr/share/factory/var search-configuration: /home/sinma/.config:/etc

Et deux mises à jour :

  • machined a été mis à jour pour exporter la version du système d’exploitation d’un conteneur (lue depuis /etc/os-release/ et /usr/lib/os-release) ; cette information est disponible via machinectl status ;

  • l’option -H de systemctl (permettant de se connecter à une machine distante exécutant systemd) a été étendue pour pouvoir se connecter à un conteneur spécifique de l’hôte. Par exemple, systemctl -H root at foobar:waldi permet de se connecter en tant que super utilisateur root de la machine foobar directement au conteneur_waldi_. Notez que, pour l’instant, il faut s’authentifier en tant que super utilisateur root pour que ça marche, puisqu’entrer dans un conteneur est une opération privilégiée.

systemd-coredump

systemd-coredump est l’outil qui gère les vidanges mémoires (core dumps), c’est‐à‐dire le contenu de la mémoire du programme avant son plantage.

Le comportement de systemd-coredump a pas mal changé : il génère dorénavant automatiquement une trace d’appel enregistrée dans le journal pour toutes les vidanges système (grâce à la bibliothèque libdw des elfutils). De plus, il enregistre maintenant les vidanges système directement sur le disque (sous /var/lib/systemd/coredump, si possible dans un format compressé), au lieu de les enregistrer dans le journal. Un nouveau fichier de configuration /etc/systemd/coredump.conf a été ajouté pour configurer les autres paramètres de systemd-coredump.

On utilise la commande coredumpctl pour consulter les informations collectées par systemd-coredump. Elle a été enrichie de deux nouvelles options : info, pour afficher les détails de la vidange système choisie, et -1, pour afficher uniquement les informations de la plus récente vidange au lieu de l’ensemble des entrées. En outre, vu que l’outil est utile de façon générale, le préfixe systemd- lui a été retiré. Les distributions qui veulent maintenir la compatibilité avec l’ancien nom devraient ajouter un lien symbolique de l’ancien nom vers le nouveau.

Pour finir, l’option SplitMode= de journald est maintenant uid par défaut. Cela signifie que les utilisateurs non privilégiés peuvent accéder à leurs propres coredumps avec coredumpctl, sans restrictions.

Unités

Trois nouveaux paramètres pour les unités services :

  1. RestartForceExitStatus= : si configuré avec une série de signaux de sortie ou de valeurs de retour de processus, le service sera relancé si le processus du démon principal se termine avec l’un d’entre eux (quelle que soit l’option Restart=) ;
  2. dans la section [Install], DefaultInstance= : pour définir l’instance par défaut à démarrer, si une unité modèle est activée sans instance spécifiée (normalement on a service@instance — par exemple, dhcpcd@[interface] ou openvpn@[nom_configuration_VPN] —, mais on peut avoir service sans @instance) ;
  3. ConditionNeedsUpdate= : démarre seulement les unités lorsque /etc ou /var sont plus « anciens » que les ressources de la distribution installée dans /usr. Elle est utile pour reconstruire ou mettre à jour /etc au redémarrage après une mise à jour hors‐ligne du répertoire /usr ou une remise aux paramètres d’usine. Les services qui veulent démarrer une seule fois après une mise à jour ou une remise à zéro devraient utiliser cette condition et se lancer eux‐même avant le nouveau systemd-update-done.service, qui marquera les deux répertoires comme totalement à jour. Un certain nombre de fichiers de services utilisant cette modification ont été ajoutés pour reconstruire la base de données matérielle de udev, le catalogue de messages de journald et le cache du chargeur de bibliothèques dynamiques (ldconfig). L’outil systemd-sysusers décrit plus haut fait déjà usage de cette nouveauté. Avec ces éléments en place, il est possible de démarrer proprement un système d’exploitation minimal avec un répertoire /etc vide. Pour plus d’informations sur le sujet, voir ce récent journal de Lennart.

Il y a aussi une nouvelle option pour les unités .mount, SloppyOptions=. Si elle est activée, cette dernière utilise l’option -s de mount(8) (traitement permissif des options de montage inconnues).

De plus, la nouvelle cible cryptsetup-pre.target peut être utilisée par les services qui doivent s’exécuter et se terminer avant que le premier conteneur chiffré LUKS ne soit configuré.

Réseau

Trois changements concernant systemd-network :

  1. prise en charge d’un serveur DHCPv4 minimal (en plus de l’actuel client DHCPv4), des clients DHCPv6 et des sollicitations client de routeur IPv6. Le client DHCPv4 gère désormais les routes statiques données par le serveur. Notez que la section [DHCPv4] des anciennes versions de systemd-networkd a été renommée en [DHCP] et qu’elle est également utilisée par le client DHCPv6. Les fichiers .network utilisant les paramètres de cette section devraient être mis à jour, bien que la compatibilité soit maintenue. En option, le nom d’hôte du client peut maintenant être envoyé au serveur DHCP ;
  2. gestion des réseaux virtuels VXLAN, ainsi que TUN/TAP et les périphériques factices ;
  3. allocation automatique de plages d’adresses pour les interfaces en utilisant groupe de d’adresses (pool) pour tout le système. C’est utile pour la gestion dynamique de nombreuses interfaces depuis un fichier de configuration pour un seul réseau, en particulier pour assigner des adresses IP correctes aux liens veth de nombreuses instances de nspawn.

Enfin, les noms d’interfaces réseau prédictibles de udev font désormais usage de l’attribut dev_port de sysfs, introduit dans Linux 3.15, à la place de dev_id : cela permet de distinguer les ports des mêmes fonctions PCI. dev_id devrait être utilisé uniquement pour les ports utilisant la même adresse matérielle, d’où la nécessité de dev_port.

Remise du système aux paramètres d’usine

Le nouvel outil systemd-sysusers est capable de créer les utilisateurs et groupes du système dans /etc/passwd et /etc/group en se basant sur les définitions des utilisateurs et groupes déclarés statiquement dans /usr/lib/sysusers.d/. C’est utile pour réinitialiser un système aux paramètres d’usine et pour les systèmes volatiles qui démarrent avec un répertoire /etc vide, et qui nécessitent les utilisateurs et groupes du système tôt dans le processus de démarrage. systemd fournit deux fichiers dans sysusers.d/ par défaut pour les utilisateurs et groupes indispensables à systemd et au cœur du système d’exploitation.

Un nouveau bout de code tmpfiles a été ajouté pour reconstruire les fichiers essentiels dans /etc au démarrage, s’ils sont manquants.

Une directive pour s’assurer du nettoyage automatique de /var/cache/man/ a été supprimée de la configuration par défaut. Cette instruction devrait dorénavant être fournie par l’implémentation de man. Les modifications nécessaires ont été apportées à l’implémentation de man‐db. Notez que vous devez mettre à jour votre implémentation de man vers une version qui fournit cette instruction, sans quoi le nettoyage automatique de /var/cache/man n’aura pas lieu.

Le fichier /etc/os-release doit maintenant être déplacé vers /usr/lib/os-release (un lien symbolique de l’ancien chemin au nouveau est automatiquement créé). /usr/lib est plus approprié pour accueillir ce fichier car il décrit le système fourni dans /usr, et pas la configuration stockée dans /etc.

tmpfiles gère désormais une nouvelle directive L+ qui crée un lien symbolique, mais, contrairement à L, elle efface d’abord le fichier pré‐existant, le cas échéant, ou si le lien symbolique ne pointait pas au bon endroit. De façon similaire, des directives b+, c+ et p+ ont été ajoutées, pour créer des périphériques blocs, caractères, ainsi que des files d’attente FIFO dans le système de fichiers, supprimant éventuellement n’importe quel fichier de type différent.

Pour les directives L, L+, C et C+ des tmpfiles, le dernier champ argument, utilisé jusque‐là pour spécifier la source du lien symbolique ou de la copie, est maintenant optionnel. S’il est omis, le même fichier est copié depuis /usr/share/factory/ et suffixé du chemin de destination. C’est utile pour peupler le répertoire /etc de fichiers essentiels, en les copiant depuis les réglages de la distribution fournis dans /usr/share/factory/etc.

Une nouvelle commande systemctl preset-all permet de remettre les paramètres de toutes les unités de service à leurs valeurs par défaut. Une nouvelle option --preset-mode= a de même été ajoutée pour contrôler si seules les opérations activées ou désactivées doivent être exécutées.

Lorsque le système démarre avec un répertoire /etc vide, l’équivalent de systemctl preset-all est exécuté tôt au démarrage pour s’assurer que tous les services par défaut sont activés après une réinitialisation aux paramètres d’usine.

Sécurité

systemd-nspawn filtrera dorénavant par défaut une série d’appels système pour les conteneurs, parmi lesquels, ceux requis pour charger les modules noyau, les accès directs aux ports d’entrée‐sortie x86, le contrôle du fichier d’échange (swap) et kexec. Mais surtout, open_by_handle_at() est dorénavant interdit aux conteneurs, fermant ainsi une faille similaire à celle de Docker récemment débattue, à propos de l’accès aux fichiers sur les arborescences auxquelles les conteneurs ne devraient pas avoir accès. Notez que nous ne garantissons par la sécurité de nspawn (ceci est explicitement documenté dans le manuel). Il s’agit donc juste de la solution à l’un des problèmes les plus évidents.

Autres

Le groupe input a été ajouté et tous les nœuds de périphériques d’entrée sont assignés à ce groupe. C’est utile pour les logiciels système qui veulent avoir accès aux périphériques d’entrée. Cela complète ce qui a déjà été fait pour les groupes audio et video.

Les nœuds de périphériques /dev/loop-control et /dev/btrfs-control appartiennent désormais au groupe disk par défaut.

De nouvelles options pour la ligne de commande du noyau ont été ajoutées : systemd.wants= (pour ajouter des unités additionnelles pendant le démarrage), systemd.mask= (pour masquer des unités particulières au démarrage) et systemd.debug-shell (pour activer le shell de débogage sur tty9).

Le nettoyage périodique automatique de $XDG_RUNTIME_DIR n’est plus fait, car c’est devenu inutile. En effet, le dossier a maintenant une limite de taille par utilisateur et est nettoyé à la déconnexion.

Télécharger ce contenu au format Epub

Lire les commentaires