Capistrano只允许'sudo su - user'

jor*_*npg 5 sudo capistrano ruby-on-rails

我正在尝试对远程服务器进行简单的Rails/Capistrano部署.不幸的是,我无法sudo开箱即用.我需要在这里部署:

drwxr-xr-x 2 user   www       4096 Sep 28 15:05 my_app_dir
Run Code Online (Sandbox Code Playgroud)

和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, ''
Run Code Online (Sandbox Code Playgroud)

我认为最好的选择是:

  1. 启用无密码sudo(此处推荐)
  2. 启用sudo -u user,应该使用set :sudo, 'sudo -u user'

任何方法使这项工作原样?

Mát*_*áté 1

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

run "#{sudo :as => 'bob'} mkdir /path/to/dir"
Run Code Online (Sandbox Code Playgroud)

来源