如何使用pysftp模块以sudo权限运行命令

问题描述:

我在我的模块中使用pysftp模块以sudo特权执行远程服务器中的命令,但不提示输入密码。如何使用pysftp模块以sudo权限运行命令

我尝试了很多方法,但没有成功。

import pysftp 
server = pysftp.Connection('169.254.204.32', username='test', password='root123') 

str_t = server.execute('sudo -S fdisk -l') 

for i in str_t: 
    print i 

# Finally Close the Server Connection 
server.close() 

早些时候,我使用的paramiko模块,还有我可以能够通过使用发送()的功能与运行SUDO特权的命令。

目前,我正在尝试与pysftp模块,但没有成功。任何人都可以帮助我解决这个问题。

SFTP服务器不允许系统命令。我认为pysftp.execute()只允许内部sftp命令(如get,put等)。

+0

感谢您的回复。我尝试使用一些命令server.execute('ls -lart'),ifconfig -a。命令执行并提供输出。但是一些需要“sudo previleages”的特定命令给予错误权限被拒绝。即使我尝试了出pysftp模块,它给予同样的错误作为权限被拒绝。所以我可以说我们可以执行命令使用pysftp.execute() –

+0

我相信你的命令将执行本地。类似于sftp命令“!ls”请参阅命令行sftp客户端的帮助。 sftp只是文件传输。 你需要shell访问(ssh)或类似rpc的东西。或者尝试使用zeromq [link](http://zeromq.org/)。 – farax