Vala和PolicyKit

问题描述:

我正在Vala中创建一个简单的基于GTK +的应用程序,它应该能够写入系统目录,因此它需要root访问权限。我意识到完全root访问是一个不好的主意,所以我需要一种获得临时权限的方法。Vala和PolicyKit

理论上,PolicyKit D-Bus服务是工作的工具,但我不知道如何使用它,更不用说在Vala代码中。任何洞察力将不胜感激。

更新: 我已经做了一些进一步的挖掘。我的出发点是this。所以基本上我需要的是找出如何将这些解决方案调整到PolicyKit。为此,有必要找到PolicyKit的D-Bus接口。我发现它here。 (奇怪的是我没有在我的本地文件夹/usr/share/dbus-1/interfaces中找到它。)但是现在我不知道该如何继续。

polkit Reference Manual包含一些很好的信息,包括writing polkit applications的高级概述。

而不是直接使用D-Bus接口,您应该考虑使用libpolkit-gobject-1库。您可以直接使用GIR,或使用vapigen生成VAPI(我会推荐)。 Here是我刚刚生成的一个。我并不是很熟悉API,但使用C API参考作为参考找出Vala API非常简单。

+1

那么这肯定有帮助,所以我倾向于接受它作为答案。我会尝试一下,一旦我找出API,我会接受它。 – meskobalazs 2013-02-25 07:23:51

+0

其实我发现,对于我的实际程序来说,这将是一个矫枉过正的问题,但我很感激帮助。顺便说一下,我只是在异步过程中调用pkexec。 – meskobalazs 2013-02-27 14:28:04

+0

那么更新前一个,实际上_pkexec_不能异步调用,所以它在后台线程中被同步调用。 – meskobalazs 2013-02-27 21:50:54