2012-09-28 8 views
5

Tôi đang cố gắng triển khai Rails/Capistrano không biến chứng cho máy chủ từ xa. Rất tiếc, tôi không thể nhận được sudo để chạy đúng cách. Tôi cần phải triển khai ở đây:Capistrano chỉ với 'sudo su - user' được phép

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

và sudoers đã được thiết lập để cho phép tôi chạy sudo su - user và đó là nó.

Một số nỗ lực để dỗ này vào làm việc kể từ 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, '' 

tôi thu thập hơn so với lựa chọn tốt nhất là một trong hai:

  1. Enable password-less sudo (đề nghị here)
  2. Bật sudo -u user, sẽ hoạt động với set :sudo, 'sudo -u user'

Bất kỳ cách nào để thực hiện công việc này?

+1

@whoever này được bỏ phiếu để đóng như "chủ đề off": từ FAQ, các loại có liên quan của câu hỏi bao gồm "công cụ phần mềm thường được sử dụng bởi các lập trình viên". Điều đó sẽ bao gồm Capistrano. Mã với 'set: sudo' là mã ruby. – jordanpg

Trả lời

1

Người dùng của bạn mà bạn đang cố gắng sử dụng đã thêm vào sudoers cfg trên máy chủ chưa? Hãy thử

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

source