web-dev-qa-db-fra.com

Comment lister un service D-Bus?

Comment un utilisateur non privilégié peut-il empêcher le lancement d'un service D-Bus? Par exemple, /usr/share/dbus-1/services/org.bluez.obex.service est démarré par le bus de session. Il ne semble pas y avoir de moyen de la "mettre sur liste noire".

C’est le bus de session auquel ma question fait référence. J'aimerais savoir s'il est possible d'empêcher certains services de démarrer sur le bus de session.

7
Nathan Osman

Les configurations de bus de messages standard au niveau du système et par session sont configurées dans les fichiers /usr/share/dbus-1/system.conf et /usr/share/dbus-1/session.conf. Ces fichiers sont normalement des fichiers system-local.conf ou session-local.conf dans/etc/dbus-1; vous pouvez placer des remplacements locaux dans ces fichiers pour éviter de modifier les fichiers de configuration principaux.

Le fichier de configuration est un document XML. Il doit avoir la déclaration de doctype suivante:

Je crois que vous devez modifier /usr/share/dbus-1/session.conf auquel est lié le fichier/etc/dbus-1 dans Ubuntu.

Remarque: les limites ne concernent normalement que le bus système, pas les bus de session utilisateur, mais je pense que vous pouvez les utiliser sur le bus de session.

L'élément définit une politique de sécurité à appliquer à un ensemble particulier de connexions au bus. Une politique est composée de et d'éléments. Les politiques sont normalement utilisées avec le bus global. Ils sont analogues à un pare-feu en ce sens qu'ils autorisent le trafic attendu et empêchent le trafic inattendu.

Les stratégies appliquées ultérieurement remplaceront celles appliquées précédemment, lorsque les stratégies se chevauchent. Plusieurs stratégies avec le même utilisateur/groupe/contexte sont appliquées dans l'ordre dans lequel elles apparaissent dans le fichier config.

Vous pouvez probablement ajouter quelque chose comme ceci à la fin de /usr/share/dbus-1/session.conf avant la ligne </busconfig> qui autoriserait l'accès pour ceux du groupe lp et le refuserait à tous les autres. Bien sûr, vous devrez modifier cela en fonction de votre environnement et de vos besoins.

<policy group="lp">
    <allow send_destination="org.bluez"/>
    <allow send_destination="org.bluez.obex"/>
  </policy>

  <policy context="default">
    <deny send_destination="org.bluez"/>
    <deny send_destination="org.bluez.obex"/>
  </policy>

Sources:

https://github.com/netblue30/firejail/issues/796http://www.linuxfromscratch.org/blfs/view/svn/general/dbus.htmlhttps://dbus.freedesktop.org/doc/dbus-daemon.1.htmlhttps://github.com/ghent360/bluez/blob/master/src/bluetooth. conf

2
Elder Geek