我的Python程序的一部分需要管理员权限。如何使用类似于gksudo
命令的GUI弹窗获得root权限?
我只需要在程序的一个小部分中获取root权限,因此最好只为特定函数获取权限。
我希望能够做到以下操作:
gksudo(my_func, 'description of why password is needed')
gksudo可以用来启动以管理员权限运行的程序。您的应用程序需要以root身份运行的部分必须能够从命令行作为单独的进程调用。如果您需要在两者之间进行某种形式的通信,可以使用套接字或监视文件等。
以下是两种选择:
您需要将需要root权限的程序部分制作成一个独立的文件,然后像这样执行该文件:
>>> import subprocess
>>> subprocess.call(['gksudo','python that_file.py'])
这将弹出密码提示并作为root运行that_file.py文件。
你也可以要求程序从一开始就以root身份运行,并让程序用户在命令行中输入"gksudo python your_program.py",这显然不是最好的选择,如果你的程序通常是从菜单启动的。
subprocess
模块而不是使用os.system
。http://docs.python.org/library/subprocess.html - user35288