remoshka
Сен. 28, 2015 18:28:49
Необходим инструмент, с помощью которого можно выполнять шелл команды на удаленном сервере. Есть одна тонкость, а именно: на сервере нет sudo и вход на сервер осуществляется через юзера, а потом осуществляется переход на рут. Переход осуществляется с помощью утилиты su. Т.е нужен инструмент, который:
1) выполнит вход под пользователем
2) выполнит команду su root -c some_cmd и введет в промпт рут пароль
3) впоймает ответ команды
4) отключится от сервера
Использовал для этого fabric, с декораторами и переопределением sudo_prefix(по дефолту он не умеет без sudo), но мне всё больше и больше кажется, что этот инструмент для деплоя. А мне чуть-чуть другое нужно.
PS: 1)нет, судо поставить не могу. 2) нет, saltssh заюзать нет вариантов 3) pyexpect не предлагать т.к он вышеозвученных вещей не умеет, у него другое предназначение, которое не подходит под мои нужды.
FishHook
Сен. 28, 2015 18:42:33
Что-то я не понял в чем прикол.
А просто в терминале подключиться к вашему серверу по ssh в чем проблема?
remoshka
Сен. 29, 2015 10:57:45
FishHook
Что-то я не понял в чем прикол.А просто в терминале подключиться к вашему серверу по ssh в чем проблема?
Попробуйте из терминала авторизоваться как юзер, потом перейти на рут и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.
Rodegast
Сен. 29, 2015 11:42:06
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рут
А сразу авторизоваться как root не вариант?
> и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.
Ты откуда / через что подключаешся?
remoshka
Сен. 29, 2015 11:46:05
Rodegast
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рутА сразу авторизоваться как root не вариант?> и выполнить команду от рута и впоймать результат выполнения команды и покажите нам.Ты откуда / через что подключаешся?
еще раз: авторизация из-под рута отключена. Авторизация проходит через юзера и возможен переход на рута уже логиненного юзера
FishHook
Сен. 29, 2015 12:03:12
> Попробуйте из терминала авторизоваться как юзер, потом перейти на рут
remoshka
Сен. 29, 2015 12:09:57
FishHook
говорят же вам, что НЕТ sudo на серверах. Прочитайте пожалуйста еще раз мое первое сообщение
Rodegast
Сен. 29, 2015 12:19:32
> Авторизация проходит через юзера и возможен переход на рута уже логиненного юзера
root разве не юзер?
> говорят же вам, что НЕТ sudo на серверах.
А sudo тут причём?
remoshka
Сен. 29, 2015 12:21:48
Rodegast
> Авторизация проходит через юзера и возможен переход на рута уже логиненного юзераroot разве не юзер?> говорят же вам, что НЕТ sudo на серверах.А sudo тут причём?
нет, рут не юзер, он - суперюзер. Судо притом ровно на столько, что его нет в системе на серверах и возможности поставить нет
remoshka
Сен. 29, 2015 12:23:39
Еще раз: ищется либа, с помощью которой можно:
1) зайти на сервер под юзером. С помощью su root -c ‘id’ выполнить команду(впоймать промпт ввода рут пароля и ввести его).
2) впоймать результат выполненной cmd
3) дисконнектиться