借助以下Stackoverflow答案here和here,我能够通过TCP / IP远程成功连接到系统DBUS。使用D-FEET我能够验证连接。
从上面的屏幕截图中可以看出,我能够访问远程总线,并且我能够成功调用org.freedesktop.hostname1对象及其接口。
但是在尝试访问com.aldogroup.Calculator时,我得到以下异常抛出qazxsw poi
访问其他服务(如org.bluez)时,也会发生此AccessDenied(我无法找到模式)
UPDATE
我的system.conf文件
DBUS busctl输出
<busconfig>
<listen>tcp:host=0.0.0.0,port=55557,family=ipv4</listen>
<listen>unix:tmpdir=/tmp</listen>
<auth>ANONYMOUS</auth>
<allow_anonymous/>
<apparmor mode="disabled"/>
<policy user="root">
<allow own="com.aldogroup.Calculator"/>
<allow send_destination="com.aldogroup.Calculator"/>
<allow send_interface="com.aldogroup.Calculator"/>
<allow send_type="method_call"/>
</policy>
</busconfig>
最好的祝福,
西蒙
我通过在/etc/dbus-1/system.d/中创建.conf文件来修复它
root@aldogroup-dart-6ul-1b6be6:~# busctl introspect com.aldogroup.Calculator /com/aldogroup/Calculator
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
com.aldogroup.Calculator interface - - -
.Divide method xx x -
.Multiply method xx x -
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
不确定为什么system.conf中指定的策略不能完成这项工作。