如何在python中实现Linux身份验证弹出窗口?

如何在python中实现Linux身份验证弹出窗口?,python,linux,authentication,root,Python,Linux,Authentication,Root,在我的项目中,我有一个守护进程和一个python UI来配置它 一个选项是启动/停止守护进程。要做到这一点,用户必须提供根密码,以便调用停止守护进程。 因此,单击停止按钮应向他显示身份验证弹出窗口(如此链接中所示: ) 有人能给我一个如何让它工作的链接或示例吗?使用gksudo的示例程序和: 我们不能假设用户没有取消提示,因此必须以另一种方式检测守护进程。如果可能的话,D-Bus将是最好的。请参阅python的说明。正如我所知,使用gksudo是在图形模式下询问root密码,但这与我想要的不

在我的项目中,我有一个守护进程和一个python UI来配置它

一个选项是启动/停止守护进程。要做到这一点,用户必须提供根密码,以便调用停止守护进程。 因此,单击停止按钮应向他显示身份验证弹出窗口(如此链接中所示:

)


有人能给我一个如何让它工作的链接或示例吗?

使用gksudo的示例程序和:


我们不能假设用户没有取消提示,因此必须以另一种方式检测守护进程。如果可能的话,D-Bus将是最好的。请参阅python的说明。

正如我所知,使用gksudo是在图形模式下询问root密码,但这与我想要的不同。我不知道答案,但我认为您需要处理PolicyKit。Ask Ubuntu上的这个问题可能有助于引导您朝着正确的方向前进。谢谢@zigg这正是我想要的!在尝试了它(以便更好地理解PolicyKit)之后,这不是我想要的(请求root权限来启动进程),但以后会很有用:)关于我的请求,我想只有gksudo可以用来说明我的观点。
#!/usr/bin/env python
import subprocess

# change gnome-terminal to command to start/stop daemon
call = ["gksudo", "--description", "Start daemon", "gnome-terminal"]

# runs, and doesn't block
proc = subprocess.Popen(call, stdout=subprocess.PIPE, stderr=subprocess.PIPE)