我已经尝试了this但它没有用,似乎是为了osx。我有一个新的Ubuntu 10.10安装与rvm,rails 3和ruby 1.9.2。我有一个新的rails应用程序,但使用gem或rails会导致以下警告(滞后)。
$ rails -v
/home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /home/chance in PATH, mode 040777
/home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /home/chance in PATH, mode 040777
Rails 3.0.5
$ gem -v
/home/chance/.rvm/rubies/ruby-1.9.2-p180/bin/gem:4: warning: Insecure world writable dir /home/chance in PATH, mode 040777
1.6.2
只是意味着重要,这是我的Gemfile:
source 'http://rubygems.org'
gem 'rails'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem "haml"
gem "formtastic"
gem "will_paginate"
gem "devise"
gem "delayed_job"
gem "whenever"
gem "memcache-client"
gem "capistrano"
group :testing do
gem "rspec"
gem "rspec-rails"
gem "autotest-standalone"
gem "autotest-rails"
gem "autotest-growl"
gem "mocha"
gem "shoulda"
gem "factory_girl_rails"
end
group :development do
gem "cheat"
gem "bullet"
gem "ruby-growl"
end
答案 0 :(得分:174)
如果您从其他答案中尝试sudo chmod go-w /usr/local/bin
,请尝试:
chmod go-w /home/chance
代替。
似乎已经发生的事情是,您的主目录(/home/chance
)已添加到您的$PATH
(操作系统在尝试查找要启动的可执行文件时搜索的目录列表),并且还更改了其权限,以便任何人都可以写入它。这可能是一个安全问题,因为另一个用户可能会将可执行文件放入此目录中,您可能会意外启动该目录。 Ruby注意到这一点并发出警告。
此命令更改目录的权限,使其不再是全局可写的。
在unix中,为三个类别指定文件权限,文件所有者(用户),文件组(组)和其他所有人(其他)。 (有关unix文件权限的更多信息,请参阅Google。)
所以打破上面的命令:
chmod
- 更改文件的“模式”(即其权限)
go
- 对于组(g)和其他组(o)
-w
- (减去w)删除写入权限
/home/chance
- 有问题的文件(或目录)
在另一个答案中,导致问题的目录是/usr/local/bin
,它由root拥有,因此需要sudo
来更改对它的权限。 /home/chance
是您的主目录,由chance
用户拥有,该用户可以更改其权限 - 无需sudo
。
答案 1 :(得分:33)
您可以将 chmod go-w 用于终端为您提供的任何路径。
因此,如果它将/ usr / local称为错误消息中的路径:
warning: Insecure world writable dir /usr/local in PATH, mode 040777
你写
chmod go-w /usr/local
答案 2 :(得分:19)
我必须使用-R来修复我的:
chmod -R go-w /Users/username
答案 3 :(得分:8)
(如果您在Mac中)尝试选项"修复磁盘权限"来自磁盘实用程序
详情日志中的几行可能会说:
Permissions differ on “usr”; should be drwxr-xr-x ; they are drwxrwxrwx.
Repaired “usr”
答案 4 :(得分:3)
我在Mac上,所以 / home / 用户名 对我不起作用。但是,当我尝试更改 / User / 用户名 的权限时,错误仍然存在。
让它发挥作用的是chmod go-w /User/username/.rvm
答案 5 :(得分:2)
如果您的环境不允许您正确修复此错误(例如,红宝石存在于网络共享或某些网络共享上),请参阅this answer for a way to suppress the error。