2010-12-30 7 views
15

Я построил корневую файловую систему на руке. Он должен работать Dbus-демон и Avahi-демон, но когда я пытаюсь запустить avahi-daemondbus_bus_request_name(): Соединениям не разрешено владеть услугой

$ dbus-daemon --system 
$ avahi-daemon 

Я получаю сообщение:

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. 

Что не так? Это о конфигурации dbus?

+0

Сообщите нам, как вы настроили dbus и avahi. – ismail

ответ

5

У меня была аналогичная проблема, в моем случае по умолчанию avahi-dbus.conf, который поставляется с моей системной пакетной системой, просто не имеет последнего «</policy>» перед «</busconfig>», который вызвал эту ошибку.

Вначале я думал, что проблема не исходит из этого файла, так как быстрого просмотра этого недостаточно, чтобы найти такую ​​синтаксическую ошибку.

14

Существуют ограничения на то, какой клиент может зарегистрировать какое имя на системной шине. В противном случае пользовательский процесс может получить запрос, предназначенный для некоторой системной службы. Ограничения настраиваются через файл конфигурации dbus-daemon, обычно /etc/dbus-1/system.conf. В стандартных установках этот файл включает в себя другие файлы конфигурации, особенно все в каталоге /etc/dbus-1/system.d/, где хранятся конфигурации, специфичные для службы. Таким образом DBus обычно настраивается для Avahi:

Пример из моей рабочей станции:

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

Убедитесь, что эти стандартные конфигурационные файлы или надлежащего пользовательской конфигурации на месте.

14

В моем случае мне просто пришлось перезапустить службу dbus.

Возможно, это связано с тем, что avahi вставил конфигурационный файл dbus (/etc/dbus-1/system.d/avahi-dbus.conf), который не был обнаружен автоматически.

 Смежные вопросы

  • Нет связанных вопросов^_^