dbus_bus_request_name (): соединениям не разрешено владеть службой

Я построил корневую файловую систему на руке. Он должен запускать 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?


person Mandy    schedule 30.12.2010    source источник
comment
Расскажите, как вы настроили dbus и avahi.   -  person ismail    schedule 30.12.2010


Ответы (3)


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

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

person Tomtix    schedule 10.08.2012

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

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

person gak    schedule 31.08.2015
comment
Ага, я тоже. Это текущая ошибка Arch Linux, которая возникает после установки avahi, но до перезапуска dbus (через systemctl или перезагрузку) bugs.archlinux.org/task/55738 - person Haldean Brown; 04.04.2018

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

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

person Jacek Konieczny    schedule 30.12.2010
comment
как демон avahi узнает, что этот файл .conf используется для его dbus? или все файлы конфигурации загружаются и помещаются в пул правил, так что добавление еще одного файла .conf изменит разрешения для подключений к org.freedesktop.Avahi? - person sezanzeb; 21.12.2020