如何获得我的应用程序的root权限?

时间:2010-07-10 01:25:14

标签: python linux dbus

我的应用需要做一些特权工作。我一直在寻找,但我找不到任何有用的东西。我知道我想使用Policykit1和dbus,因为我找到的所有其他替代品都不再使用了。

这是我到目前为止的代码:

import dbus
import os

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 i


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

os.makedirs('/usr/local/share/somefolder')

我无法制作目录,我做错了什么?

1 个答案:

答案 0 :(得分:1)

文件系统安全性阻止了您,因为您的用户没有/usr/local/share/somefolder的写入权限。您可以使用sudo临时升级该目录创建的权限。但是,如果您需要以超级用户身份执行更多操作,它并不止于此。

如果您需要写入不在用户空间中的内容,整个程序可能更适合以root身份运行(当然在sudo下),例如sudo ./myscript.py