我是一個capistrano的新手,並且一直對我的頭撞這個問題幾天,所以真的很感謝一些幫助。作爲不同的用戶運行capistrano任務
我們有一個煩人的安全設置,這意味着我不能像ssh用戶那樣在遠程服務器上運行capistrano任務。這是一個簡單的版本This problem - 這似乎沒有一個工作的答案。
編輯: 進一步鑽研這個,我發現我可以這樣做:
run "su - newuser" do |channel, stream, data|
channel.send_data("#{password}\n")
channel.send_data("rm -rf #{release_path}\n")
end }
我可以用它來覆蓋默認的部署方法,並且大多數的什麼,我需要做的。我可以在服務器上創建所需的目錄等,並使用ssh轉發從git作爲ssh用戶。這造成了我的下一個問題。我現在擁有由newuser擁有的目錄,其中包含ssh_user擁有的文件和目錄。我具有sudo特權作爲newuser,但無法解決如何chmod文件。我已經嘗試過這樣的東西:
run "su - newuser" do |channel, stream, data
channel.send_data("#{password}\n")
channel.send_data("sudo chmod 775 #{cache_path}\n")
end }
但是一切都只是掛起,看起來好像該塊在無限循環中執行。很顯然,這裏有很多我不明白的地方,一些指針會被大大讚賞 - 即使只是一個很好的相關閱讀。
所以,你想連接爲一個用戶,然後'sudo su'給另一個用戶?如果您要手動登錄到服務器,您會採取哪些步驟? – PinnyM 2013-02-11 17:07:05
正確 - 我不能sudo,但我可以su - 看到下面的答案更詳細的意見 – chrispanda 2013-02-11 18:55:41