現在のセッションを閉じずにcapistranoを使用して展開している間に(rootまたはそういった)ユーザを切り替える方法はありますか?(セッションはsshキーで開始されます)capistranoで展開中にユーザーを切り替えますか?
私はユーザfooでデプロイメントを開始し、rootに変更してからいくつかのコマンドを実行します。
ありがとうございました!
現在のセッションを閉じずにcapistranoを使用して展開している間に(rootまたはそういった)ユーザを切り替える方法はありますか?(セッションはsshキーで開始されます)capistranoで展開中にユーザーを切り替えますか?
私はユーザfooでデプロイメントを開始し、rootに変更してからいくつかのコマンドを実行します。
ありがとうございました!
あなたはカピストラーノに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
を必要に応じてパスワードを取得してパスしますそれは正しく一緒に。
私はsudo
はあなたがrootとしてコマンドを実行する場所あなたが言うことはありません
を必要とするものであると信じています。ローカルシステムでは?リモートシステムでは?
capistranoの「実行」コマンドは、別々の新しいssh接続を使用します。上で述べたように、 "sudo"はルートとして1組のステートメントを実行する公式の方法です。
sshを使って直接ログインできるようにRootにsshキーを与えるのが快適であれば、sshでユーザーを指定することができます。しかし、私はそれをお勧めしません。
「sudo」(sigh)のないSolaris環境では、代わりにpfexecを使用します。
あなたのユーザーは以前にsudoersグループである必要があります。
、それを使用します。
task :specific_sudo_take do
run 'sudo -c sh "whoami' #put your sudo command here
end
代わりに、組み込みの 'sudo'コマンドを使用しますこれは... – severin
私はこれがあなたの質問に答えることを望みます:http://stackoverflow.com/questions/22054076/capistrano-3-change-ssh-options-inside-task/23569541#23569541 – activars