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

5 投票
2 回答
4900 浏览
提问于 2025-04-16 06:39

我有一个Python程序的部分功能需要管理员权限。我该怎么做才能像使用gksudo命令那样,通过一个图形界面的弹窗来获取根权限呢?

我只需要在程序的一小部分中使用根权限,所以最好是只在特定的功能中获得这些权限。

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

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

2 个回答

4

gksudo可以用来启动需要管理员权限的程序。你应用中的那部分需要以超级用户身份运行的功能,必须能够从命令行作为一个单独的进程来调用。如果你需要这两个部分之间有某种形式的通信,可以使用套接字或者监视一个文件等等。

3

这里你有两个选择:

你需要把需要管理员权限的程序部分单独放到一个文件里,然后像这样执行这个文件:

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

这样会弹出密码输入框,并以管理员身份运行那份文件。

你也可以要求程序一开始就以管理员身份运行,用户只需在命令行中输入“gksudo python your_program.py”,但如果你的程序通常是从菜单启动的,这显然不是个好主意。

撰写回答