Capistrano: пример оболочки

В настоящее время я использую Capistrano для развертывания своего веб-приложения, которое работает как шарм.

В моем новом проекте я должен выполнить команду из оболочки sudo /bin/bash.

Может ли Capistrano войти в систему как пользователь X, запустить sudo /bin/bash, ввести пароль и затем выполнить команду в оболочке sudo? Если да, не могли бы вы показать мне пример.

С уважением

Джейкоб


person jakob    schedule 14.10.2009    source источник


Ответы (1)


Есть ли конкретная причина, по которой вам нужно находиться в корневой оболочке, а не выполнять команду с помощью sudo? Если вы выполняете команду с помощью sudo, вы можете просто использовать sudo 'command' вместо run 'command'.

Я провел небольшой эксперимент, пытаясь получить корневую оболочку с помощью capistrano, не входя на сервер напрямую в качестве пользователя root, и не смог добиться большого прогресса.

Если запуск с помощью sudo не работает, обновите свой вопрос, чтобы сообщить нам, почему, и, возможно, мы сможем помочь вам найти обходной путь.

Обновление:

Поиграв еще немного, я обнаружил, что вы можете выполнить отдельную команду (или строку команд) в корневой оболочке, выполнив что-то вроде sudo '/bin/bash -c "whoami"'. Сложно получить интерактивную корневую оболочку.

person Emily    schedule 14.10.2009
comment
Все, что вам нужно сделать, чтобы получить корневую оболочку с помощью sudo, это sudo -s. Дети в наши дни... - person Justin; 28.04.2010
comment
В оболочке Capistrano есть (или, по крайней мере, были) проблемы с интерактивными командами, запускаемыми в исходной оболочке. Вы пробовали это и заставили это работать? - person Emily; 05.05.2010