Получение предупреждения «Небезопасный мир записи dir / home / chance» в PATH, режим 040777 для рельсов и драгоценных камней - PullRequest
77 голосов
/ 21 марта 2011

Я пробовал это , но это не сработало и, похоже, для OSX. У меня свежая Ubuntu 10.10 с установкой rvm, rails 3 и ruby ​​1.9.2. У меня есть свежее приложение rails, но использование 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

$ драгоценный камень -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

Ответы [ 6 ]

178 голосов
/ 22 марта 2011

Если вы попытались sudo chmod go-w /usr/local/bin из другого ответа, попробуйте:

chmod go-w /home/chance

.

Похоже, что ваш домашний каталог (/home/chance) каким-то образом имеетбыл добавлен в ваш $PATH (список каталогов, которые ищет ОС при попытке найти исполняемый файл для запуска), а также изменил его разрешения, чтобы каждый мог писать в него.Это потенциальная проблема безопасности, поскольку другой пользователь может поместить исполняемый файл в этот каталог, который вы можете случайно запустить.Руби замечает это и выдает предупреждение.

Эта команда изменяет разрешения для каталога, чтобы он больше не мог быть доступен для записи в мире.

В Unix права доступа к файлам указываются для трех категорий: владелец файла (пользователь), группафайл (группа) и все остальные (другие).(Более подробную информацию о правах доступа к файлам в Unix см. В Google).

Итак, разбив указанную выше команду:

chmod - измените «режим» файла (то есть его разрешения)

go - для группы (g) и других (o)

-w - (минус w) удалить разрешение на запись

/home/chance - файл (или каталог)в вопросе

В другом ответе каталог, вызвавший проблему, был /usr/local/bin, который принадлежит пользователю root, поэтому sudo требуется для изменения разрешений для него./home/chance - это ваш домашний каталог, который принадлежит пользователю chance, который может изменять разрешения для него - sudo не требуется.

33 голосов
/ 23 марта 2013

Вы используете chmod go-w для любого пути, который вам дает терминал.

Так что если в сообщении об ошибке указано / usr / local в качестве пути:

warning: Insecure world writable dir /usr/local in PATH, mode 040777

Вы пишете

chmod go-w /usr/local
19 голосов
/ 24 апреля 2013

Мне пришлось использовать -R, чтобы исправить мое:

chmod -R go-w /Users/username
8 голосов
/ 20 мая 2014

(Если вы находитесь в Mac) Попробуйте опцию «Восстановить права доступа к диску» из утилиты диска

enter image description here

Возможно, пара строк в подробном журнале скажет:

Permissions differ on “usr”; should be drwxr-xr-x ; they are drwxrwxrwx.
Repaired “usr”
3 голосов
/ 15 января 2013

Я на Mac, поэтому / home / username у меня не сработало. Однако, когда я попытался изменить разрешения для / User / username , ошибка не исчезла.

То, что заставило его работать, было chmod go-w /User/username/.rvm

2 голосов
/ 19 февраля 2014

Если ваша среда не позволяет корректно исправить эту ошибку (т. Е. Ruby живет в общем сетевом ресурсе или что-то подобное), см. этот ответ, чтобы узнать, как устранить ошибку .

...