Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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
Python 如何知道程序是否以管理员权限打开?_Python - Fatal编程技术网

Python 如何知道程序是否以管理员权限打开?

Python 如何知道程序是否以管理员权限打开?,python,Python,我有一个Python程序,它打开一个套接字,该套接字与上的程序通信 远程计算机。 我想检查远程计算机上的程序是否以管理员权限打开。 我试着上网,但没有成功 这在很大程度上取决于远程程序是什么,以及您对服务器的其他访问权限。最可靠的方法是查询程序,以便它告诉您它的权限-如何做,甚至是否可能,取决于它支持什么查询以及它给出什么响应。如果不可能,您可以询问服务器上的其他进程,例如,如果您有shell访问权限,您可以尝试解析ps aux的输出或在/proc下查找信息。但这有可能相当脆弱,而且还伴随着大量

我有一个Python程序,它打开一个套接字,该套接字与上的程序通信 远程计算机。 我想检查远程计算机上的程序是否以管理员权限打开。
我试着上网,但没有成功

这在很大程度上取决于远程程序是什么,以及您对服务器的其他访问权限。最可靠的方法是查询程序,以便它告诉您它的权限-如何做,甚至是否可能,取决于它支持什么查询以及它给出什么响应。如果不可能,您可以询问服务器上的其他进程,例如,如果您有shell访问权限,您可以尝试解析ps aux的输出或在/proc下查找信息。但这有可能相当脆弱,而且还伴随着大量的安全问题——您将向运行您的脚本的每个人提供shell,可能还有admin

您可能应该重新考虑如何处理这些信息—可能有比检查远程服务的权限更好的方法来解决此问题。您已经说过,该流程是一个rpyc实例,它允许您访问一些Python模块。据推测,如果它没有足够的权限运行,它的一些功能将不可用——在这种情况下,最具python风格的解决方案是完全按照本地脚本的方式执行:尝试执行您需要执行的任何操作,并准备好处理故障。这通常会涉及一个try/except块,如下所示:

try:
    privileged_operation()
except PermissionError:
    # Handle the problem

您需要查阅该模块的文档,或对其稍加修改,以找出它在此处给您带来的确切错误。

可能会看到该进程以哪个用户的身份运行,但需要更多信息。您在远程计算机上运行的是什么操作系统?您将尝试一些需要管理的操作,但由于X原因,它将以失败响应,否则它将正常工作。try:ps aux | grep program_name来自命令行i-e shell,不适用于linux或OSX。对于windows,您是否可以尝试ctrl+alt+del打开任务管理器?但不确定。我如何知道发生了故障?我正在使用rpyc与远程计算机通信。我已经有了一些api,允许我将文件移动到设计计算机。有没有一种不依赖于平台的方法?需要管理员做什么?但正如我所说的,这取决于您正在运行的东西——rpyc似乎只允许您远程访问任意Python模块,因此您可以做什么取决于该模块提供了什么。你控制那个模块还是服务器?我不控制服务器端的模块。不过,我有一些api可以让我在服务器上运行一些进程。如果不知道模块是什么以及您正在尝试做什么,很难给出详细的建议,但请参阅我的更新答案,了解我认为在没有更多细节的情况下可以做的最好的事情。需要什么信息?我有一个与rpyc通信的客户端和服务器。我完全控制了客户。我可以将文件复制到一些管理员权限库中,但这既快又脏。