2010-12-30 7 views
15

Ho costruito un file system root sul braccio. Dovrebbe funzionare dbus-daemon e avahi-daemon, ma quando provo a fare funzionare avahi-daemondbus_bus_request_name(): le connessioni non sono autorizzate a possedere il servizio

$ dbus-daemon --system 
$ avahi-daemon 

ottengo questo messaggio:

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. 

Cosa c'è di sbagliato? Riguarda la configurazione di dbus?

+0

Raccontaci come hai configurato dbus & avahi. – ismail

risposta

5

Ho avuto un problema simile, nel mio caso il default avahi-dbus.conf fornito con il mio sistema di pacchetti di sistema manca solo l'ultimo "</policy>" prima di "</busconfig>" che ha attivato questo errore.

Inizialmente ho pensato che il problema non provenisse da questo file poiché una rapida occhiata non è sufficiente per trovare questo tipo di errore di sintassi.

14

Esistono restrizioni su quale client può registrare il nome sul bus di sistema. In caso contrario, un processo utente potrebbe ricevere una richiesta destinata ad alcuni servizi di sistema. Le restrizioni sono configurate tramite il file di configurazione dbus-daemon, in genere /etc/dbus-1/system.conf. Nelle installazioni standard questo file include altri file di configurazione, in particolare tutti nella directory /etc/dbus-1/system.d/, in cui sono archiviate le configurazioni specifiche del servizio. In questo modo DBus è di solito configurato per Avahi:

Esempio dalla mia postazione di lavoro:

$ 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> 

Accertarsi che siano presenti questi file di configurazione standard o una configurazione personalizzata adeguata al suo posto.

14

Nel mio caso ho semplicemente dovuto riavviare il servizio dbus.

Questo probabilmente era dovuto al fatto che avahi ha inserito un file di configurazione dbus (/etc/dbus-1/system.d/avahi-dbus.conf) che non è stato rilevato automaticamente.