在PATH模式040777中获取警告“不安全的世界可写dir / home / chance”,用于rails和gem
我试过这个,但它没有工作,似乎是为OSX。 我有一个新的Ubuntu 10.10与rvm,rails 3和ruby1.9.2安装。 我有一个新的导轨应用程序,但使用gem或导轨导致以下警告(滞后)。
$ 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
,请尝试:
chmod go-w /home/chance
代替。
发生什么似乎是你的主目录( /home/chance
)已经被添加到你的$PATH
(操作系统search试图find一个可执行文件时要search的目录列表),并且也改变了它的权限任何人都可以写信给它。 这是一个潜在的安全问题,因为另一个用户可能会将一个可执行文件放到这个可能会意外启动的目录中。 Ruby注意到这一点,并发出警告。
这个命令改变目录的权限,使它不再是世界可写的。
在unix中,文件所有权(用户),文件(组)以及其他人(其他)的文件权限分为三类。 (有关unix文件权限的更多信息,请参见Google)。
所以打破上面的命令:
chmod
– 更改文件的“模式”(即其权限)
go
– 组(G)和其他(O)
-w
– (减w)删除写入权限
/home/chance
– 有问题的文件(或目录)
在另一个答案中,导致问题的目录是/usr/local/bin
,它由root拥有,所以需要sudo
来更改它的权限。 /home/chance
是您的主目录,由可以更改权限的chance
用户拥有 – 不需要sudo
。
你可以使用chmod go-w到terminal给你的任何path。
所以,如果它说/ usr / local作为错误消息中的path:
warning: Insecure world writable dir /usr/local in PATH, mode 040777
你写
chmod go-w /usr/local
我不得不使用-R来修复我的:
chmod -R go-w /Users/username
(如果您位于Mac中)尝试从磁盘工具中select“修复磁盘权限”
细节日志中的几行可能会说:
Permissions differ on “usr”; should be drwxr-xr-x ; they are drwxrwxrwx. Repaired “usr”
我在Mac,所以/ home / 用户名不适合我。 但是,当我尝试更改/用户/ 用户名的权限时,错误仍然存在。
得到它的东西是chmod go-w / User / username /.rvm
如果你的环境不允许你正确地解决这个错误(即ruby生活在一个networking共享或类似的),看到这个答案的方法来抑制错误 。