2012-09-28 13 views
5

Sto provando a eseguire una distribuzione Rails/Capistrano senza complicazioni su un server remoto. Sfortunatamente non riesco a far funzionare sudo correttamente fuori dalla scatola. Ho bisogno di schierare qui:Capistrano con solo 'sudo su - user' consentito

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

e sudoers è stato istituito per permettermi di correre sudo su - user e basta.

Alcuni tentativi di convincere questo a lavorare da 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, '' 

raccolgo che le migliori opzioni sono a uno:

  1. Enable senza password sudo (consigliato here)
  2. Abilita sudo -u user, che dovrebbe funzionare con set :sudo, 'sudo -u user'

Qualche modo per farlo funzionare così com'è?

+1

@whoever sta votando per chiudere come "fuori tema": dal FAQ, importanti tipi di domande sono "strumenti software comunemente usati dai programmatori". Ciò includerebbe Capistrano. Il codice con 'set: sudo's è codice ruby. – jordanpg

risposta

1

L'utente che stai tentando di utilizzare è stato aggiunto al sudoers cfg sul server? Prova questo

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

source