Я использую Fabric для запуска команд на удаленном сервере. Пользователь, с которым я подключаюсь на этом сервере, имеет некоторые привилегии sudo и не требует пароля для использования этих привилегий. Когда SSH'ing на сервере, я могу запустить sudo blah
, и команда выполняется без запроса пароля. Когда я пытаюсь запустить ту же команду с помощью функции Fabric sudo
, мне будет предложено ввести пароль. Это связано с тем, что при использовании sudo
:
sudo -S -p <sudo_prompt> /bin/bash -l -c "<command>"
Очевидно, что у моего пользователя нет разрешения на выполнение /bin/bash
без пароля.
Я работал над проблемой, используя run("sudo blah")
вместо sudo("blah")
, но я задавался вопросом, есть ли лучшее решение. Есть ли способ обхода проблемы?