gpt4 book ai didi

python - 使用 policykit+dbus 代替 gksu 运行图形应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:50 26 4
gpt4 key购买 nike

我正在寻找执行 gksu 或 beesu 作业但依赖于 policykit 的命令。

policykit 和 dbus 文档不知何故非常复杂且不清楚。

我找到了“pkexec”,但它在尝试运行图形应用程序时显示错误

pkexec gedit

结果:

(gedit:7243): Gtk-WARNING **: cannot open display: 

最佳答案

您需要在 /usr/share/polkit-1/actions 中创建一个 action 定义文件,用 XML 编写。

将此复制到 /usr/share/polkit-1/actions/com.example.gedit:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

<action id="com.example.gedit">
<message gettext-domain="gedit">Authentication is required to run gedit as root</message>
<icon_name>accessories-text-editor</icon_name>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>

</policyconfig>

org.freedesktop.policykit.exec.allow_gui = true 将允许 gedit 连接到您的 Xorg 服务器。它会自动将 XAUTHORITYDISPLAY 传递给它。

关于python - 使用 policykit+dbus 代替 gksu 运行图形应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com