dbus_bus_request_name (): соединения не могут владеть сервисом - PullRequest
20 голосов
/ 30 декабря 2010

Я собрал корневую файловую систему на руку.Он должен запускать dbus-daemon и avahi-daemon, но когда я пытаюсь запустить avahi-daemon

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

Ответы [ 3 ]

23 голосов
/ 01 сентября 2015

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

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

14 голосов
/ 30 декабря 2010

Существуют ограничения на то, какой клиент может зарегистрировать какое имя на системной шине. В противном случае пользовательский процесс может получить запрос, предназначенный для некоторой системной службы. Ограничения настраиваются через файл конфигурации 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>

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

5 голосов
/ 10 августа 2012

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

...