Найти - Пользователи
Полная версия: инструмент для выполнения команд на ремоут shell
Начало » Python для экспертов » инструмент для выполнения команд на ремоут shell
1 2 3
remoshka
Необходим инструмент, с помощью которого можно выполнять шелл команды на удаленном сервере. Есть одна тонкость, а именно: на сервере нет sudo и вход на сервер осуществляется через юзера, а потом осуществляется переход на рут. Переход осуществляется с помощью утилиты su. Т.е нужен инструмент, который:
1) выполнит вход под пользователем
2) выполнит команду su root -c some_cmd и введет в промпт рут пароль
3) впоймает ответ команды
4) отключится от сервера

Использовал для этого fabric, с декораторами и переопределением sudo_prefix(по дефолту он не умеет без sudo), но мне всё больше и больше кажется, что этот инструмент для деплоя. А мне чуть-чуть другое нужно.

PS: 1)нет, судо поставить не могу. 2) нет, saltssh заюзать нет вариантов 3) pyexpect не предлагать т.к он вышеозвученных вещей не умеет, у него другое предназначение, которое не подходит под мои нужды.
FishHook
Что-то я не понял в чем прикол.
А просто в терминале подключиться к вашему серверу по ssh в чем проблема?
remoshka
FishHook
Что-то я не понял в чем прикол.А просто в терминале подключиться к вашему серверу по ssh в чем проблема?
Попробуйте из терминала авторизоваться как юзер, потом перейти на рут и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.
Rodegast
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рут
А сразу авторизоваться как root не вариант?

> и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.
Ты откуда / через что подключаешся?
remoshka
Rodegast
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рутА сразу авторизоваться как root не вариант?> и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.Ты откуда / через что подключаешся?

еще раз: авторизация из-под рута отключена. Авторизация проходит через юзера и возможен переход на рута уже логиненного юзера
FishHook
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рут

remoshka
FishHook
говорят же вам, что НЕТ sudo на серверах. Прочитайте пожалуйста еще раз мое первое сообщение
Rodegast
> Авторизация проходит через юзера и возможен переход на рута уже логиненного юзера
root разве не юзер?

> говорят же вам, что НЕТ sudo на серверах.
А sudo тут причём?
remoshka
Rodegast
> Авторизация проходит через юзера и возможен переход на рута уже логиненного юзераroot разве не юзер?> говорят же вам, что НЕТ sudo на серверах.А sudo тут причём?

нет, рут не юзер, он - суперюзер. Судо притом ровно на столько, что его нет в системе на серверах и возможности поставить нет
remoshka
Еще раз: ищется либа, с помощью которой можно:
1) зайти на сервер под юзером. С помощью su root -c ‘id’ выполнить команду(впоймать промпт ввода рут пароля и ввести его).
2) впоймать результат выполненной cmd
3) дисконнектиться
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB