【问题标题】:dbus_bus_request_name (): Connections are not allowed to own the servicedbus_bus_request_name():不允许连接拥有服务
【发布时间】:2011-06-01 10:41:21
【问题描述】:

我在 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 配置的吗?

【问题讨论】:

  • 告诉我们您是如何配置 dbus 和 avahi 的。

标签: linux dbus busybox avahi


【解决方案1】:

在我的情况下,我只需要重新启动 dbus 服务。

这可能是因为 avahi 插入了一个未自动检测到的 dbus 配置文件 (/etc/dbus-1/system.d/avahi-dbus.conf)。

【讨论】:

  • 是的,我也是。这是一个当前的 Arch Linux 错误,发生在您安装 avahi 之后但在重新启动 dbus 之前(通过 systemctl 或重新启动)bugs.archlinux.org/task/55738
【解决方案2】:

对于什么客户端可以在系统总线上注册什么名称是有限制的。否则,用户进程可能会收到针对某些系统服务的请求。 限制是通过 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>

确保您拥有这些标准配置文件或适当的自定义配置。

【讨论】:

  • avahi 守护进程如何知道将此 .conf 文件用于其 dbus?还是所有配置文件都已加载并放入规则池中,以便添加另一个 .conf 文件会修改与 org.freedesktop.Avahi 的连接的权限?
【解决方案3】:

我遇到了类似的问题,在我的情况下,我的系统数据包系统附带的默认 avahi-dbus.conf 只是缺少触发此错误的“&lt;/busconfig&gt;”之前的最后一个“&lt;/policy&gt;”。

我一开始以为问题不是来自这个文件,因为快速查看它并不足以发现这种语法错误。

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2014-04-02
    • 1970-01-01
    • 2019-01-07
    • 2018-11-04
    • 2021-03-09
    相关资源
    最近更新 更多