Subprocess.Popen для «ssh sudo -u user -i» не работает с «sudo: извините, для запуска sudo у вас должен быть tty»Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Subprocess.Popen для «ssh sudo -u user -i» не работает с «sudo: извините, для запуска sudo у вас должен быть tty»

Сообщение Гость »


Я хочу подключиться к удаленному серверу по SSH, сменить пользователя и выполнить скрипт. Для этого я использую подпроцесс, но похоже, что sudo -u userB -i не меняет пользователя.

Код: Выделить всё

HOST = 'remote_server'
USER = 'userA'
CMD = ' whoami; sudo -u userB -i; whoami'

ssh = subprocess.Popen(['ssh', '{}@{}'.format(USER, HOST),CMD],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if not result:
err = ssh.stderr.readlines()
print('ERROR: {}'.format(err))
else:
print "success"
print(result)

$ success
$ ['userA\n', 'userA\n']
When I replaced with CMD ='sudo -u userB -i && whoami', I got this error:


ERROR: ['sudo: sorry, you must have a tty to run sudo\n']


On the terminal, I'm able to do passwordless ssh, sudo -u userB -i && whoami


Источник: https://stackoverflow.com/questions/485 ... ry-you-mus
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»