Выполните интерпретируемые команды в sudo

Вопрос состоит в том, как выполнить групповые команды, которые могут содержать; && | <> <<>> $ и так далее в sudo.

Возможные решения могли быть:

  1. Использовать интерпретаторы в sudo

sudo /bin/bash -c 'command ; command | ...'

или

sudo -s <<< 'command ; command | ...'

Но у меня нет sudoer/bin/bash/bin/sh или любых других полномочий. Таким образом, это получает меня отклоненное разрешение.

  1. Я мог также использовать что-то вроде этого:

sudo command ; sudo command

Но проблема состоит в том, что мне нужно решение, работающее на любую команду, данную как аргумент моей функции (см. контекст),

Некоторый контекст:

Я пишу Python обертку Popen, которая имеет флаг sudo=True/False. Если sudo верен, что должен выполнить любую данную командную строку в sudo (значение, что команды могут содержать; | <> &&)

0
задан 27 November 2014 в 13:08

1 ответ

Возможно, запись команд к сценарию оболочки, создание его исполняемый файл и выполнение его с sudo сделают то, в чем Вы нуждаетесь.

Однако то, что Вы делаете, очень опасно. Позволяя потенциально недоверяемой командной строке быть выполненным, поскольку корень является неизбежным бедствием. Ищите "тип" инжекции оболочки уязвимостей. Тогда, возможно, рассмотрите рассмотрение что потребности быть сделанными и затем перепроектирование его без потребности выполнить любую команду как sudo.

0
ответ дан 6 October 2019 в 09:16

Другие вопросы по тегам:

Похожие вопросы: