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