Я хочу провести некоторый аудит на нескольких серверах 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».