使用capistrano部署时切换用户?

sde*_*old 3 ruby deployment capistrano

是否有任何方法可以在使用capistrano进行部署时切换用户(到root等)而不关闭当前会话(会话是使用ssh密钥启动的)?

所以我想用用户foo开始部署,然后更改为root,然后执行一些命令.

谢谢你的回答!

sev*_*rin 6

你可以使用capistrano sudo helper:

task :some_task_as_root do
  run "#{sudo} some_command"
end
Run Code Online (Sandbox Code Playgroud)

你甚至可以指定一个不同的用户:

task :some_task_as_other_user do
  run "#{sudo :as => 'other_user'} some_command"
end
Run Code Online (Sandbox Code Playgroud)

如果需要,sudo帮助程序将负责从您那里获取密码并正确传递密码.