dbus_bus_request_name ():Подключениям не разрешается владеть сервисом
Вопрос
Я создал корневую файловую систему на arm.Он должен запускать 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?
Решение
У меня была похожая проблема, в моем случае в avahi-dbus.conf по умолчанию, который поставляется с моей системной пакетной системой, просто отсутствует последний " </policy>
" до " </busconfig>
" что вызвало эту ошибку.
Сначала я подумал, что проблема не в этом файле, поскольку быстрого просмотра недостаточно, чтобы найти такого рода синтаксическую ошибку.
Другие советы
В моем случае мне просто пришлось перезапустить службу DBUS.
Вероятно, это было потому, что Avahi вставила файл конфигурации DBUS (/etc/dbus-1/system.d/avahi-dbus.conf
), который не был обнаружен автоматически.
Существуют ограничения на то, что клиент может зарегистрировать, какое имя на системной шине. В противном случае пользовательский процесс может получить запрос, предназначенный для некоторой системной службы. Ограничения настроены через файл конфигурации DBUS-DAEMON, обычно /etc/dbus-1/system.conf
. Анкет В стандартных установках этот файл включает в себя другие файлы конфигурации, особенно в /etc/dbus-1/system.d/
каталог, где хранятся конкретные конфигурации. Таким образом, DBU обычно настроен для 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>
Убедитесь, что у вас есть эти стандартные файлы конфигурации или правильная пользовательская конфигурация.