2011-06-30 8 views
3

現在のセッションを閉じずにcapistranoを使用して展開している間に(rootまたはそういった)ユーザを切り替える方法はありますか?(セッションはsshキーで開始されます)capistranoで展開中にユーザーを切り替えますか?

私はユーザfooでデプロイメントを開始し、rootに変更してからいくつかのコマンドを実行します。

ありがとうございました!

+0

私はこれがあなたの質問に答えることを望みます:http://stackoverflow.com/questions/22054076/capistrano-3-change-ssh-options-inside-task/23569541#23569541 – activars

答えて

6

あなたはカピストラーノにsudoヘルパー使用することができます。

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

sudoのヘルパー:あなたも別のユーザーを指定することができ

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

を必要に応じてパスワードを取得してパスしますそれは正しく一緒に。

+0

なぜこの回答は下降していますか?コメント/理由は素晴らしいでしょう! – severin

+0

これは私がseverinを探していたものです - ありがとうございます – Kirk

+0

よろしくお願いします! – severin

0

私はsudoはあなたがrootとしてコマンドを実行する場所あなたが言うことはありません

1

を必要とするものであると信じています。ローカルシステムでは?リモートシステムでは?

capistranoの「実行」コマンドは、別々の新しいssh接続を使用します。上で述べたように、 "sudo"はルートとして1組のステートメントを実行する公式の方法です。

sshを使って直接ログインできるようにRootにsshキーを与えるのが快適であれば、sshでユーザーを指定することができます。しかし、私はそれをお勧めしません。

「sudo」(sigh)のないSolaris環境では、代わりにpfexecを使用します。

-1

あなたのユーザーは以前にsudoersグループである必要があります。

、それを使用します。

task :specific_sudo_take do 
    run 'sudo -c sh "whoami' #put your sudo command here 
end 
+0

代わりに、組み込みの 'sudo'コマンドを使用しますこれは... – severin

関連する問題