2010-11-06 62 views
6

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

我只需要我的程序的一小部分的root权限,所以最好只具有特定功能的权限。

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

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

回答

3

你这里有两种选择:

你需要使程序的一部分,需要根特权一个单独的文件,然后执行类似这样的文件:

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

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

你也可以要求将程序从root身份运行开始,只是有程序用户在开始的命令行中键入“gksudo python your_program.py”,如果程序通常从菜单启动,显然这并不是最好的办法。

5

gksudo,可以用来启动以管理员权限运行程序。需要以root用户身份运行的应用程序部分必须能够从命令行作为单独的进程调用。如果您需要在两者之间某种形式的沟通,你可以使用套接字或观看文件等

+1

但是,如果您使用套接字,请确保攻击者无法连接到gksudoed程序。恕我直言,最好使用DBUS左右(会话特定)。 – thejh 2010-11-06 10:45:40

+0

如果你使用这个选项,你应该使用'subprocess'模块而不是'os.system'。 http://docs.python.org/library/subprocess.html – 2010-11-07 15:09:14