一尘不染

在PATH模式040777的PATH中获得警告“不安全的世界可写目录/ home / chance”,用于rails和gem

linux

我已经尝试过了,但是它没有用,似乎适用于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

阅读 441

收藏
2020-06-02

共1个答案

一尘不染

如果您尝试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不需要。

2020-06-02