如何使用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等)。
感谢您的回复。我尝试使用一些命令server.execute('ls -lart'),ifconfig -a。命令执行并提供输出。但是一些需要“sudo previleages”的特定命令给予错误权限被拒绝。即使我尝试了出pysftp模块,它给予同样的错误作为权限被拒绝。所以我可以说我们可以执行命令使用pysftp.execute() –
我相信你的命令将执行本地。类似于sftp命令“!ls”请参阅命令行sftp客户端的帮助。 sftp只是文件传输。 你需要shell访问(ssh)或类似rpc的东西。或者尝试使用zeromq [link](http://zeromq.org/)。 – farax