Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过图形sudo在python中获得root权限?_Python_Gksudo - Fatal编程技术网

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

如何通过图形sudo在python中获得root权限?,python,gksudo,Python,Gksudo,python程序的一部分需要管理员访问。如何使用类似于gksudo命令的GUI弹出窗口获得root权限 我只需要程序的一小部分的root权限,因此最好只拥有特定函数的权限 我希望能够做到以下几点: gksudo(my_func, 'description of why password is needed') gksudo可用于启动以管理员权限运行的程序。应用程序中需要以root用户身份运行的部分必须能够作为独立于命令行的进程进行调用。如果两者之间需要某种形式的通信,可以使用套接字或监视文件等

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用户身份运行该_file.py


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

但是如果您使用套接字,确保攻击者无法连接到GKSUDED程序。依我看,最好使用DBUS(特定于会话)。如果使用此选项,则应使用
子流程
模块,而不是使用
操作系统