2017-06-13 5 views
1

Ich verwende Pysftp-Modul in meinem Modul, um Befehle auf dem Remote-Server mit Sudo-Privileg ohne Aufforderung das Passwort auszuführen.So führen Sie Befehle mit Sudo-Berechtigung mit Pysftp-Modul

Ich versuchte auf viele Arten, aber keinen Erfolg.

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() 

Früher benutzte ich paramiko Modul, da kann ich in der Lage, die Befehle mit sudo-Berechtigungen auszuführen, indem Sie send() Funktion verwenden.

Derzeit versuche ich mit dem Pysftp-Modul, aber keinen Erfolg. Könnte mir jemand dabei helfen?

Antwort

0

SFTP-Server erlauben keine Systembefehle. Ich denke pysftp.execute() erlaubt nur interne sftp Befehle (wie get, put usw.).

+0

Danke für Ihre Antwort. Ich habe versucht, einige Befehle server.execute ('ls -lart'), ifconfig-a. Befehle werden ausgeführt und liefern die Ausgabe. Aber einige spezielle Befehle, die "sudo previlages" erfordern, geben einen Fehler als verweigerte Berechtigung. Auch wenn ich ohne pysftp-Modul ausprobiert habe, gibt es denselben Fehler wie die verweigerte Berechtigung. Also kann ich sagen, dass wir Befehle mit pysftp.execute() ausführen können –

+0

Ich bin sicher, dass Ihre Befehle lokal ausgeführt werden. Ähnlich dem sftp-Befehl "! Ls" Siehe Hilfe des Befehlszeilen-SFTP-Clients. sftp ist nur eine Dateiübertragung. Sie benötigen Shell-Zugriff (SSH) oder etwas wie RPC. Oder versuchen Sie zeromq [link] (http://zeromq.org/). – farax

Verwandte Themen