Переключение пользователя при развертывании с capistrano? - PullRequest
3 голосов
/ 30 июня 2011

есть ли способ переключить пользователя (на root или около того) при развертывании с помощью capistrano без закрытия текущего сеанса (сеанс запускается с помощью ключей ssh)?

Итак, я хочу начать развертывание с пользователем foo, затем перейти в root и затем выполнить некоторые команды.

Спасибо за ваши ответы!

Ответы [ 4 ]

6 голосов
/ 21 июня 2012

Вы можете использовать capistrano sudo helper:

task :some_task_as_root do
  run "#{sudo} some_command"
end

Вы даже можете указать другого пользователя:

task :some_task_as_other_user do
  run "#{sudo :as => 'other_user'} some_command"
end

Помощник sudo позаботится о том, чтобы при необходимости получить от вас пароль и правильно его передать.

1 голос
/ 30 июня 2011

Вы не говорите, где хотите запускать команды от имени пользователя root. В локальной системе? В удаленной системе?

Каждая команда «run» в capistrano использует отдельное новое ssh-соединение. Как указано выше, «sudo» является официальным способом запуска одного набора операторов от имени root.

Если вам удобнее дать Root ключ ssh, чтобы иметь возможность войти непосредственно через ssh, вы можете указать пользователя для ssh как. Я бы не рекомендовал это.

В среде Solaris без "sudo" ( sigh ) вместо этого мы используем pfexec.

0 голосов
/ 17 июля 2011

Ваш пользователь должен быть до этого группой sudoers.

, затем использовать его:

task :specific_sudo_take do
  run 'sudo -c sh "whoami' #put your sudo command here
end
0 голосов
/ 30 июня 2011

Я считаю, sudo это то, что вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...