非root用户应仅具有写入其程序文件夹的权限。每个人都可以执行该程序,并且只有拥有该程序的非root用户才能创建和修改新文件。 GTK +不允许setuid,需要一个帮助程序。我想使用polkit在GTK +中实现这一目标。
在C中找不到任何示例。我有pkactions和其他相关文件,但是,该程序需要在polkit中注册它。这些文档没有给我清晰的画面,我无法理解如何通过API实现这一目标。
任何帮助将不胜感激。
谢谢
下面是我尝试引用的一些链接,但没有成功。
https://www.freedesktop.org/software/polkit/docs/0.105/index.html https://greyok.github.io/simple-polkit-tutorial.html
答案 0 :(得分:2)
根据https://www.gtk.org/setuid.html的合理建议,您不应在gtk应用程序中使用setuid。它建议通过管道使用管道验证从Gtk到setuid后端的通信,该输入经setuid程序验证是否可信任。这还具有可以很好地将UI和后端分离的优点,并且您无需在C中执行setuid程序(尽管Gtk具有过多的绑定)或完全不需要Gtk即可。