Vala 和 PolicyKit
Posted
技术标签:
【中文标题】Vala 和 PolicyKit【英文标题】:Vala and PolicyKit 【发布时间】:2013-02-09 03:03:05 【问题描述】:我正在 Vala 中创建一个简单的基于 GTK+ 的应用程序,它应该能够写入系统目录,因此它需要 root 访问权限。我意识到授予完全 root 访问权限是个坏主意,所以我需要一种方法来获得临时权限。
理论上,PolicyKit D-Bus 服务是完成这项工作的工具,但我不知道如何使用它,更不用说在 Vala 代码中了。任何见解将不胜感激。
更新: 我做了一些进一步的挖掘。我的出发点是this。所以基本上我需要的是找出如何使这些解决方案适应 PolicyKit。为此,需要找到PolicyKit的D-Bus接口。我找到了here。 (奇怪的是我没有在我的本地 /usr/share/dbus-1/interfaces 文件夹中找到它。)但现在我不知道如何继续。
【问题讨论】:
【参考方案1】:polkit Reference Manual 包含一些很好的信息,包括对writing polkit applications 的高级概述。
与其直接使用 D-Bus 接口,不如考虑使用libpolkit-gobject-1 库。您可以直接使用 GIR,也可以使用 vapigen 生成 VAPI(我会推荐)。 Here 是我刚刚生成的。我对 API 不是很熟悉,但是很容易使用 C API 参考作为参考来找出 Vala API。
【讨论】:
嗯,这肯定有帮助,所以我倾向于接受它作为答案。我会试试看,等我搞清楚API就接受了。 实际上我发现,对于我的实际程序,这将是一个矫枉过正,但我感谢帮助。顺便说一句,我只是在异步进程中调用 pkexec。 对上一个的更新,其实pkexec不能异步调用,所以在后台线程中同步调用。以上是关于Vala 和 PolicyKit的主要内容,如果未能解决你的问题,请参考以下文章