YWC*_*llo 7 sudo capistrano ruby-on-rails-3 rvm-capistrano
我不希望通过Capistrano使用sudo执行任何远程执行的命令.具体来说,当我运行时cap deploy:setup,在第一个mkdir命令期间我被要求输入我的sudo密码.我添加set :use_sudo, false到我的deploy.rb文件中,但这并没有什么区别.
我从一个相当完整的deploy.rb文件开始,但是一旦我遇到问题就将其削减.这是我的最小版本仍然显示use_sudo不受尊重:
# App Definitions
set :domain, '[server-ip]'
role :app, domain
role :web, domain
role :db, domain, :primary => true
set :user, "my_app"
set :use_sudo, false
task :sudo_test do
run "#{try_sudo} whoami"
end
Run Code Online (Sandbox Code Playgroud)
运行cap sudo_test导致我被提示输入我的sudo密码.我在这里想念的是什么(除了我已经拔出的头发)?
谷歌调查结果
https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg
有人有类似问题的帖子.线程中没有结论/解决方案.
小智 12
对于遇到这个问题而且像我这样傻瓜的其他人.确保你没有引用虚假.我有:
set :use_sudo, "false"
Run Code Online (Sandbox Code Playgroud)
当我切换到
set :use_sudo, false
Run Code Online (Sandbox Code Playgroud)
大多数事情都按照我的预期开始工作.正如YWCA Hello指出的那样,仍有命令忽略use_sudo设置.但是,不要忘记正确设置它.
显然,无法通过某些capistrano任务禁用sudo功能。假定服务器上的非特权用户不应执行某些任务。
有问题的命令是mkdir。我认为,如果父文件夹是他们有权执行此操作的文件夹,那么没有特权的用户应该可以运行此命令。我还要指出,该用户实际上可能是特权用户,例如root。最佳实践?不必要。在某些部署的合理范围内,可以。
这是对我的原始问题的答复的链接:
https://github.com/capistrano/capistrano/issues/211#issuecomment-7667467
| 归档时间: |
|
| 查看次数: |
15694 次 |
| 最近记录: |