如何通过图形sudo在python中获得root权限?

时间:2010-11-06 10:33:29

标签: python gksudo

我的部分python程序需要管理员访问权限。如何使用类似于gksudo命令的GUI弹出窗口获得root权限?

我只需要为程序的一小部分提供root权限,因此最好只拥有特定功能的权限。

我希望能够做到这样的事情:

gksudo(my_func, 'description of why password is needed')

2 个答案:

答案 0 :(得分:5)

gksudo可用于启动以管理员权限运行的程序。应用程序中需要以root身份运行的部分必须能够作为与命令行分开的进程调用。如果您需要在两者之间进行某种形式的通信,则可以使用套接字或监视文件等。

答案 1 :(得分:3)

这里有两个选项:

您需要将需要root权限的程序部分作为单独的文件,然后执行如下文件:

>>> import subprocess
>>> subprocess.call(['gksudo','python that_file.py'])

将显示密码提示并以root身份运行that_file.py

您还可以要求程序从一开始就以root身份运行,只需让程序用户在命令行中从一开始就输入“gksudo python your_program.py”,这显然不是最好的选择,如果您的程序是通常从菜单中启动。