python 之 实现su 到root账号

简单记录一下如何通过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) # 查看输出结果

  

posted @ 2019-06-02 16:39  十年如一..bj  阅读(3077)  评论(0编辑  收藏  举报