【发布时间】:2013-02-11 17:01:17
【问题描述】:
我是 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 用户的身份使用 ssh 转发从 git 中提取。这产生了我的下一个问题。我现在拥有 newuser 拥有的目录,其中包含 ssh_user 拥有的文件和目录。我确实有作为 newuser 的 sudo 权限,但不知道如何对文件进行 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连接到另一个用户?如果您要手动登录服务器,您会采取哪些步骤? -
正确 - 我不能 sudo 但我可以 su - 请参阅下面对答案的评论了解更多详细信息
标签: ruby-on-rails ruby capistrano