Aller au contenu

D-Bus

D-Bus (de Desktop Bus) : bus de messages entre processus d'un système Linux, par lequel les outils d'administration dialoguent avec systemd et ses services.

Il existe un bus système, joignable par la socket /run/dbus/system_bus_socket, et un bus par session utilisateur. Un service y publie des objets, avec des méthodes et des propriétés, sous un nom comme org.freedesktop.hostname1. Beaucoup de commandes ne sont que des clients : hostnamectl interroge systemd-hostnamed, démarré à la demande par le bus, timedatectl interroge systemd-timedated, et systemd-networkd transmet les serveurs DNS de chaque lien à systemd-resolved par D-Bus. busctl list affiche les services présents, busctl introspect org.freedesktop.hostname1 /org/freedesktop/hostname1 ce qu'un objet expose.

Conséquences pratiques : dans un conteneur sans D-Bus, hostnamectl échoue alors que cat /etc/hostname fonctionne. Redémarrer D-Bus perturbe tous ses clients, ce qui explique que needrestart l'exclue de ses redémarrages automatiques. Côté sécurité, les propriétés d'une unité, dont ses variables d'environnement, sont lisibles par des clients non privilégiés à travers le bus : c'est pourquoi systemd déconseille d'y passer des secrets et propose ses credentials.

Dans les cours

Voir aussi