如何将 D-Bus 服务列入黑名单?

如何将 D-Bus 服务列入黑名单?

非特权用户如何阻止 D-Bus 服务启动?例如,/usr/share/dbus-1/services/org.bluez.obex.service由会话总线启动。似乎没有办法将其“列入黑名单”。

我的问题指的是会话总线。我想知道是否可以阻止特定服务在会话总线上启动。

答案1

标准的系统范围和每个会话的消息总线设置在文件/usr/share/dbus-1/system.conf和中配置/usr/share/dbus-1/session.conf。这些文件通常是 /etc/dbus-1 中的 system-local.conf 或 session-local.conf;您可以在这些文件中放置本地覆盖,以避免修改主配置文件。

配置文件是一个 XML 文档。它必须具有以下 doctype 声明:

我相信您需要修改/usr/share/dbus-1/session.confubuntu 中的 /etc/dbus-1 所链接的内容。

注意:限制通常只对系统范围总线感兴趣,而不是用户会话总线,但我认为您可以在会话总线上使用它们。

元素定义要应用于总线的特定连接集的安全策略。策略由和元素组成。策略通常用于系统范围的总线;它们类似于防火墙,因为它们允许预期流量并阻止意外流量。

当策略重叠时,较晚应用的策略将覆盖较早应用的策略。具有相同用户/组/上下文的多个策略将按照它们在配置文件中出现的顺序应用。

您可能只需/usr/share/dbus-1/session.conf在行的末尾添加类似这样的内容</busconfig>,即可允许 lp 组中的人访问并拒绝其他所有人访问。当然,您需要修改它以适合您的环境和需求。

<policy group="lp">
    <allow send_destination="org.bluez"/>
    <allow send_destination="org.bluez.obex"/>
  </policy>

  <policy context="default">
    <deny send_destination="org.bluez"/>
    <deny send_destination="org.bluez.obex"/>
  </policy>

资料来源:

https://github.com/netblue30/firejail/issues/796 http://www.linuxfromscratch.org/blfs/view/svn/general/dbus.html https://dbus.freedesktop.org/doc/dbus-daemon.1.html https://github.com/ghent360/bluez/blob/master/src/bluetooth.conf

相关内容