非特权用户如何阻止 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.conf
ubuntu 中的 /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