我已经尝试过了,但是它没有用,似乎适用于osx。我用rvm,rails 3和ruby 1.9.2重新安装了Ubuntu 10.10。我有一个新鲜的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
如果您尝试sudo chmod go-w /usr/local/bin使用其他答案,请尝试:
sudo chmod go-w /usr/local/bin
chmod go-w /home/chance
代替。
似乎已发生的事情是,您的主目录(/home/chance)已以某种方式添加到您$PATH的目录中(操作系统在尝试查找要启动的可执行文件时搜索的目录列表),并且其权限也已更改,以便任何人都可以写入它。这可能是一个安全问题,因为其他用户可能会将可执行文件放入此目录中,而您可能会意外启动该可执行文件。Ruby注意到这一点并发出警告。
/home/chance
$PATH
此命令更改目录的权限,使其不再可写入世界。
在UNIX中,为三个类别(文件所有者(用户),文件组(组)和其他所有人)指定了文件许可权)。(有关Unix文件权限的更多信息,请参见Google)。
因此,分解上面的命令:
chmod -更改文件的“模式”(即其权限)
chmod
go -对于组(g)和其他(o)
go
-w -(减w)删除写入权限
-w
/home/chance -有问题的文件(或目录)
在另一个答案中,引起问题的目录是/usr/local/bin,该目录归root拥有,因此sudo需要更改其权限。/home/chance是您的主目录,该目录由chance可以更改其权限的用户拥有- sudo不需要。
/usr/local/bin
sudo
chance