簡單記錄一下如何通過python代碼在linux系統下實現自動su - 切換到root賬號,
使用到的模塊:paramiko
使用到的方法:invoke_shell 功能:在SSH server端創建一個交互式的shell,且可以按自己的需求配置偽終端,可以在invoke_shell()函數中添加參數配置。
測試代碼如下:
import paramiko ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(hostname=ipaddr, port=port, username=user,password=pwd) # 假設以上以普通用戶登錄 chan = ssh_client.invoke_shell() # 使用偽終端,默認vt100創建交互式 chan.send('su -\n') # 發送su 命令 chan.recv(4096).decode() # 接收返回 chan.send('root密碼\n') # 發送root密碼 # 以上切換root完畢 # 開始執行shell命令 stdin, stdout, stderr = self.client.exec_command('ls /root') out, err = stdout.read(), stderr.read() mess = out if out else err mess = mess.strip().decode() print(mess) # 查看輸出結果