2010-12-30 15 views
15

Ich baute ein Root-Dateisystem auf Arm. Es sollte dbus-daemon und avahi-Daemon laufen, aber wenn ich versuche, avahi-daemondbus_bus_request_name(): Verbindungen dürfen den Dienst nicht besitzen

$ dbus-daemon --system 
$ avahi-daemon 

Ich erhalte diese Nachricht auszuführen:

Found user 'avahi' (UID 4) and group 'avahi' (GID 4). 
Successfully dropped root privileges. 
avahi-daemon 0.6.28 starting up. 
WARNING: No NSS support for mDNS detected, consider installing nss-mdns! 
dbus_bus_request_name(): Connection ":1.0" is not allowed to own the service "org.freedesktop.Avahi" due to security policies in the configuration file 
WARNING: Failed to contact D-Bus daemon. 
avahi-daemon 0.6.28 exiting. 

Was ist falsch? Geht es um die dbus-Konfiguration?

+0

Sagen Sie uns, wie Sie dbus & avahi konfiguriert haben. – ismail

Antwort

5

Ich hatte ein ähnliches Problem, in meinem Fall die Standard-Avahi-dbus.conf, die mit meinem System-Paket-System kommen fehlt nur die letzte "</policy>" vor "</busconfig>", die diesen Fehler ausgelöst.

Ich dachte zuerst das Problem kam nicht aus dieser Datei, da ein schneller Blick auf es nicht genug ist, um diese Art von Syntaxfehler zu finden.

14

Es gibt Einschränkungen, welcher Client welchen Namen auf dem Systembus registrieren darf. Andernfalls könnte ein Benutzerprozess eine Anfrage empfangen, die für einen Systemdienst bestimmt ist. Die Einschränkungen werden über die Konfigurationsdatei des dbus-Daemons konfiguriert, normalerweise /etc/dbus-1/system.conf. In Standardinstallationen enthält diese Datei andere Konfigurationsdateien, insbesondere alle im Verzeichnis /etc/dbus-1/system.d/, in dem dienstspezifische Konfigurationen gespeichert sind. Auf diese Weise DBus ist in der Regel für Avahi konfiguriert:

Beispiel von meinem Arbeitsplatz:

$ cat /etc/dbus-1/system.d/avahi-dbus.conf 
<!DOCTYPE busconfig PUBLIC 
      "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" 
      "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> 
<busconfig> 

    <!-- Only root or user avahi can own the Avahi service --> 
    <policy user="avahi"> 
    <allow own="org.freedesktop.Avahi"/> 
    </policy> 
    <policy user="root"> 
    <allow own="org.freedesktop.Avahi"/> 
    </policy> 

    <!-- Allow anyone to invoke methods on Avahi server, except SetHostName --> 
    <policy context="default"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 

    <deny send_destination="org.freedesktop.Avahi" 
      send_interface="org.freedesktop.Avahi.Server" send_member="SetHostName"/> 
    </policy> 

    <!-- Allow everything, including access to SetHostName to users of the group "adm" --> 
    <policy group="adm"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 
    </policy> 
    <policy user="root"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 
    </policy> 
</busconfig> 

Achten Sie darauf, diese Standard-Konfigurationsdateien oder eine richtige benutzerdefinierte Konfiguration an der richtigen Stelle.

14

In meinem Fall musste ich einfach den dbus-Dienst neu starten.

Dies war wahrscheinlich, weil Avahi eine dbus-Konfigurationsdatei (/etc/dbus-1/system.d/avahi-dbus.conf) eingefügt, die nicht automatisch erkannt wurde.

Verwandte Themen