【问题标题】:ArgumentError: parent directory is world writable but not sticky (bundle install)ArgumentError:父目录是全局可写但不具有粘性(捆绑安装)
【发布时间】:2016-09-30 22:15:54
【问题描述】:

Link to github for error printout

当我尝试捆绑安装时,我收到上述错误。我试过其他帖子的建议,github社区不知道答案。

我正在运行 Arch 并在我的 shell 中使用 zsh。

更新环境:

捆绑器 1.12.5

Rubygems 2.5.1

Ruby 2.3.1p112(2016-04-26 修订版 54768)[x86_64-linux]

GEM_HOME /usr/lib/ruby/gems/2.3.0

GEM_PATH /usr/lib/ruby/gems/2.3.0:/home/.gem/ruby/2.3.0

Git 2.8.3

open_gem (1.5.0)

提前致谢!

【问题讨论】:

  • ls -l ~/.bundle/cache/compact_index/ 并查看权限。
  • 子目录的权限应该最多为1777(drwxrwxrwt),即全局可写且具有粘性。顺便说一句,我的是 0755 (drwxr-xr-x)。
  • 我尝试修改权限无济于事。你的 ls 的输出是: drwxrwxrwx 1 rand 1000 8192 Jun 1 12:15 ruby​​gems.org.443.29b0360b937aa4d161703e6160654e47
  • 这就是问题所在。 drwxrwxrwx (0777) 表示任何人都可以在该目录中创建/删除/移动任何文件。 drwxrwxrwt(1777,注意后面的t)意味着任何人都可以在该目录中创建文件,但只有该文件的创建者可以删除/移动它。

标签: ruby-on-rails ruby linux


【解决方案1】:

首先,运行命令

ls -l ~/.bundle/cache/compact_index/

你应该看到类似的东西

drwxr-xr-x  3 myname  staff  102 Jun  1 23:03 rubygems.org.443.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

(我是一个可怜的中国程序员,所以我的文件夹是ruby.taobao.org.443.07113fbafd9bf5f337f3f6cee4b3a723。我猜目录名称是<rubygems source domain>.<rubygems source port (443 for HTTPS)>.<checksum>)

注意drwxr-xr-x 部分,并确保它不是 drwxrwxrwx。

如果是drwxrwxrwx,则通过命令修改

chmod 0755 rubygems.org.443.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

drwxrwxrwx (0777) 表示任何人都可以在该目录中创建任何文件(世界可写)以及删除/移动它们(非粘性)。 Bundler (>= 1.12.4) 使用 compact_index 反过来使用 Dir::mktmpdir 在该目录中创建子目录。

出于安全考虑,方法Dir::mktmpdir会验证待创建tmp目录的父目录的权限。如果权限是 0777 (drwxrwxrwx) 那么你会看到这个错误,因为它不安全。

0755 (drwxr-xr-x) 很好,因为只有该目录的所有者(用户)才能在该目录中创建/删除/移动文件或子目录(不可全局写入)。其他人只能列出他们的信息。

1777 (drwxrwxrwt) 也很好,因为任何人都可以在该目录中创建文件或子目录(全局可写),但只有该文件的创建者可以删除/移动它(sticky)。

【讨论】:

  • 在我添加 -R 标志后为我工作。所以,我的最终命令看起来像这样:chmod 0755 ~/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47 -R
  • @mikedhart - 谢谢,如果没有 -R 开关,我的无法工作
【解决方案2】:

试试这个:

chmod +t -R ~/.bundle/cache

它对我有用。

【讨论】:

  • 这对我也适用于 Windows 10 上的“Bash on Ubuntu”!
【解决方案3】:

这对我有用

sudo chmod +t -R ~/.bundle/cache/compact_index/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2011-04-30
    相关资源
    最近更新 更多