どのクライアントがどの名前をシステム バスに登録できるかについては制限があります。そうしないと、ユーザー プロセスが何らかのシステム サービスを対象とした要求を受信する可能性があります。制限は、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>
これらの標準構成ファイルまたは適切なカスタム構成があることを確認してください。