簡體   English   中英

Python Paramiko Sudo 命令

[英]Python Paramiko Sudo Command

    client paramiko.SSHClient() 
    client set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    client.connect()
    stdin stdout, stderr = client.exec_command("sudo passwd root") 

我有個問題……?? 我必須為每個虛擬機更改密碼嗎? 一些登錄 Vms 的帳戶不需要 stdin.write 密碼來使用 sudo 命令,一些帳戶必須輸入他們的密碼。 我如何檢測是否需要標准輸入來執行 sudo 命令???

期望標准輸入會有一個功能,但我找不到任何方法嗎? 而且我嘗試打印標准輸出,但它卡住了(我猜是無限循環的緩沖區問題)

您可能正在尋找類似paramiko-expect的東西。 建立.expect連接,然后你就可以期待“password for”提示了。

如果您收到“密碼”提示,請發送 sudo 密碼。 如果您不這樣做(並且看起來您將不得不嘗試 - 除了TimeoutError (或類似的)來確定您是否沒有收到 sudo 提示,您只需繼續更改密碼即可。

但是:我認為您在這里使用了錯誤的工具。 我認為帶有用戶模塊的 Ansible 之類的解決方案比嘗試在 SSH 上安裝一些東西更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM