linux总线错误无法删除文件,linux – 系统D-Bus不允许使用conf文件来破坏所有权...
我正在嘗試創建一個在系統總線上運行的守護程序服務,其中從此服務發送和接收的權限應該完全對任何人開放. (安全性不是此服務的關注點).當我嘗試使用QtDbus(使用PyQt)注冊服務時,我收到此錯誤:由于配置文件中的安全策略,連接“:1.0”不允許擁有服務“org.dbus.arduino”.這個其他堆棧溢出具有相同的錯誤,但由于某種原因在這種情況下根本沒有幫助. dbus_bus_request_name (): Connections are not allowed to own the service.
通常你應該保留system.conf文件,并在system.d目錄中添加你的權限“打出”配置文件.我已經做到了這一點,但它似乎沒有改變任何東西,無論我如何打開我的權限.事實上,我幾乎是積極的,它沒有改變任何東西!這是我的conf文件,因為它就在這一刻.
/p>
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
即使我這樣做或類似的東西,它仍然不起作用.
我甚至將文件的名稱以z開頭,以便它可能是最后一個讀入的文件.這是system.conf文件,請注意我已經注釋掉了“允許自己”部分.這是使其工作的唯一方法(以及最糟糕的“修復”).
/p>
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
system
messagebus
/lib/dbus-1/dbus-daemon-launch-helper
/var/run/dbus/pid
EXTERNAL
unix:path=/var/run/dbus/system_bus_socket
send_interface="org.freedesktop.DBus"
send_member="UpdateActivationEnvironment"/>
system.d
system-local.conf
contexts/dbus_contexts
我絕對必須使用系統總線,因為我將它部署在沒有GUI的Raspberry Pi上(沒有x11,沒有會話總線).我只能通過完全允許系統總線上的所有內容來獲得Raspberry Pi的工作(安全性并不是這個設備上的大部分交易).顯然,我不允許在我的開發機器上發生這種情況.作為背景我使用的是Opensuse 12.2,Raspberry Pi是Debian Squeeze.我無法使用我的用戶帳戶或root用戶擁有該服務,除非我完全打開權限,在這種情況下它可以正常工作.我還要注意,當我完全打開系統總線時,我仍然必須使用root來向守護進程發送消息(終止命令).我希望解決方案能夠通過具有訪問權限的root的特定用戶運行.我也很滿意解決方案只允許同一個用戶和root用戶向它發送消息.
感謝您的幫助,我相信這是一個小問題!
解決方法:
我終于找到了這個問題.當Dbus查找配置文件以查找權限(如所有權)時,該文件不僅必須在system.d /中,而且還必須以.conf結尾.
我的配置文件“org.dbus.arduino”應該是“org.dbus.arduino.conf”.我從system.conf中刪除了代碼.確認我不再擁有權限,在“system.d / org.dbus.arduino.conf”創建配置文件,我被授予權限.然后我嘗試將文件重命名為“org.dbus.arduino”并確認權限被拒絕.
標簽:linux,configuration,dbus,qtdbus
來源: https://codeday.me/bug/20191006/1862440.html
總結
以上是生活随笔為你收集整理的linux总线错误无法删除文件,linux – 系统D-Bus不允许使用conf文件来破坏所有权...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cortex-M3中断的具体行为
- 下一篇: 含有运算放大器的电阻电路