【问题标题】:Capistrano executes a command with sudo although it is turned offCapistrano 使用 sudo 执行命令,尽管它已关闭
【发布时间】:2014-02-28 09:19:51
【问题描述】:

我的 capistrano 项目有以下 deploy.rb

# config valid only for Capistrano 3.1
lock '3.1.0'

# Default value for :pty is false
# forward password prompts
set :pty, true

set :use_sudo, false

namespace :setup do

  desc 'installs required libraries'
  task :libraries do

    on roles(:app), in: :sequence do
      execute :sudo, 'whoami'
      execute :sudo, "apt-get install mplayer"
    end
  end
end

我可能不太了解:use_sudoexecute :sudo, 'command' 部分的概念,但奇怪的是whoami 返回root,即使:use_sudo 已关闭。

Documentation of v.2 也声明了这一点:

设置:use_sudo,假。默认情况下,Capistrano 将尝试使用 sudo 执行某些操作(设置服务器、重新启动应用程序等)。如果您在共享主机上,您可能无法使用 sudo,或者您可能只是想避免使用 sudo。

那么,如果 sudo 仍然执行,:use_sudo 标志是什么。

【问题讨论】:

    标签: ruby-on-rails ruby linux unix capistrano


    【解决方案1】:

    您在 sudo 中显式运行命令:execute :sudo, 'whoami',为什么它使用 sudo 让您感到惊讶?

    如您引用的文档中所述,将 :use_sudo 选项设置为 false 将告诉 Capistrano 在执行某些操作时不要使用 sudo。如果你执行sudo whoami,虽然它不会修改你的命令。

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 2017-05-23
      相关资源
      最近更新 更多