Необходимо выполнить sudo su - useraccount после входа на хост с использованием paramiko - PullRequest
0 голосов
/ 03 января 2019

Я хочу провести некоторый аудит на нескольких серверах 250, и то же самое нужно делать раз в неделю, поэтому мне нужно приложить немало ручных усилий. Вместо того, чтобы делать это вручную, я бы хотел автоматизировать то же самое с Python, используя модуль paramiko.

В моем сценарии, сначала я должен войти на хост, затем я должен сменить учетную запись (sudo su - useraccount), он запросит пароль. После успешного входа в систему мне нужно выполнить несколько команд, связанных с приложением.

Я могу войти на хост, но не могу переключиться на учетную запись пользователя.

import paramiko
from time import sleep

command = 'pwd'
remoteHost = "IP Address"
sshPort = 22
sshUser = "basic username"
sshPass = "my password"

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(remoteHost, sshPort, sshUser, sshPass)

stdin, stdout, stderr = ssh.exec_command("sudo su - useraccount", get_pty=True)
stdin.write('Password\n')
stdin.flush()

    stdin, stdout, stderr=ssh.exec_command(command)

for line in stderr:
    print(line)
ssh.close()

должен печатать путь к домашнему каталогу учетной записи «useraccount».

...