2012-09-28 70 views
5

我正在尝试将简单的Rails/Capistrano部署到远程服务器。不幸的是,我无法让sudo正确运行。我要在这里部署:Capistrano只允许'sudo su - user'允许

drwxr-xr-x 2 user www  4096 Sep 28 15:05 my_app_dir 

和sudoers文件已被设置为允许我跑sudo su - user,就是这样。

一些尝试来哄从deploy.rb工作的:

set :use_sudo, true 
set :sudo, 'sudo su - user' # fails due to bad su syntax, -c is inserted after user 
set :sudo, 'sudo -u user' # fails because it's not set up 
set :sudo, 'sudo su - user -c' # also bad syntax 
set :sudo_prompt, '' 

我收集比最好的选择是要么:

  1. 启用密码的sudo(推荐here
  2. 启用sudo -u user,它应该与set :sudo, 'sudo -u user'

任何方式使这项工作是?

+1

@whoever投票被关闭的“题外话”:从常见问题,相关类型的问题,包括“程序员常用的软件工具”。这将包括Capistrano。带'set:sudo's的代码是ruby代码。 – jordanpg

回答

1

您尝试使用的用户是否添加到服务器上的sudoers cfg中? 试试这个

run "#{sudo :as => 'bob'} mkdir /path/to/dir" 

source