【问题标题】:warning: Insecure world writable dir when I run a ruby or gem command警告:运行 ruby​​ 或 gem 命令时不安全的世界可写目录
【发布时间】:2011-02-17 07:02:35
【问题描述】:

不知道为什么我会得到这个,但我刚刚安装了 RVM,新的 Ruby 1.9,并重新安装了一堆 gem,我得到了这个

/Users/johnsmith/.rvm/rubies/ruby-1.9.1-p378/bin/gem:4:警告:PATH 中不安全的世界可写目录 /opt/local/bin,模式 040777

否则一切仍然运行,但我想知道是否有办法摆脱它。

【问题讨论】:

标签: ruby-on-rails macos rubygems osx-snow-leopard


【解决方案1】:

如果您的环境不允许您正确修复此错误(即 ruby​​ 存在于网络共享或类似的位置),请参阅 this answer for a way to suppress the error

【讨论】:

    【解决方案2】:

    为了澄清,在它说不安全的世界可写之后返回的任何路径都是你使用的。

    因此,您可以将 /opt/local/bin 替换为您的路径,而不是:chmod go-w /opt/local/bin。

    【讨论】:

      【解决方案3】:

      找到您的 gem 路径,以便我们可以编辑 bundler gem。在你的 shell 中执行以下命令:

      $ ruby -r rubygems -e "p Gem.path"
      

      导航到您的 gem 路径并 cd 进入当前使用的捆绑器版本。现在导航到 lib -> bundler 并在您最喜欢的文本编辑器中打开 runtime.rb。在第 2 行添加“$VERBOSE = nil”。

      require "digest/sha1" 
      $VERBOSE = nil 
      module Bundler   
      class Runtime < Environment
          include SharedHelpers
      
          def setup(*groups)
            # Has to happen first
            clean_load_path
      

      ...

      【讨论】:

      • 这会静音所有输出,包括来自 rake 任务的输出。不是我想要的。
      【解决方案4】:

      在某些情况下(比如我的),堆栈比opt/local/bin 更深。在这种情况下,使用

      sudo chmod go-w opt/local/*/bin usr/local/*/bin opt/local/bin usr/local/bin
      

      无论如何,错误都会提示不安全的世界在哪里。

      【讨论】:

        【解决方案5】:

        只需 chmod go-w /opt/local/bin 在 shell 提示符下(取决于您可能需要 sudo 执行此操作的权限)。

        【讨论】:

        • 是的!你是个天才!至此,我成功安装了 RVM、ruby 1.9 和 64 位挑战:D
        • @ming,在你的机器上运行的任何程序都可以在/opt/local/bin 中放入任何它想要的东西(所以特别是任何可执行的“隐藏”任何系统和其他此类木马),而无需额外的 - your-leave:这不是不安全吗?!
        • 你是说这个答案是一个糟糕的主意,使用它会在我的系统中打开一个巨大的安全漏洞吗?
        • chmod: /opt/local/bin: No such file or directory
        • chmod go-w /usr/local/bin 在 OSX 中
        猜你喜欢
        • 1970-01-01
        • 2014-06-04
        • 2011-09-05
        • 2015-11-26
        • 2021-07-29
        • 2011-04-26
        • 2014-12-29
        • 1970-01-01
        • 2012-10-17
        相关资源
        最近更新 更多