簡體   English   中英

如何將dbus和policykit連接到python中的函數?

[英]How do I connect dbus and policykit to my function in python?

我正在制作一個具有需要root權限的方法的python應用程序。 https://www.freedesktop.org/software/polkit/docs/0.105/polkit-apps.html ,我找到了示例2。通過D-Bus (以下代碼的python版本) 訪問Authority ,我執行了它。我以為輸入密碼后就能獲得root特權,但是我的應用仍然“權限被拒絕”。 是我要連接的功能

import dbus

bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority')
authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority')

system_bus_name = bus.get_unique_name()

subject = ('system-bus-name', {'name' : system_bus_name})
action_id = 'org.freedesktop.policykit.exec'
details = {}
flags = 1            # AllowUserInteraction flag
cancellation_id = '' # No cancellation id

result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id)

print result

在您引用的python代碼中, result表明成功還是失敗? 如果失敗,則需要通過首先找出busproxyauthoritysystem_bus_name的返回值來縮小錯誤的范圍。 如果成功,則需要檢查如何使用result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM