2017-06-13 147 views
1

我在我的模塊中使用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模塊,但沒有成功。任何人都可以幫助我解決這個問題。

回答

0

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

相關問題