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

Я пробовал этот, но это не сработало и, похоже, для osx. У меня есть новая установка Ubuntu 10.10 с rvm, rails 3 и ruby ​​1.9.2. У меня есть новое приложение для рельсов, но использование либо драгоценного камня, либо рельсов приводит к следующим предупреждениям (с задержкой).

$ rails -v

/home/chance/.rvm/gems/[email protected]/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/[email protected]/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

Ответ 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.

Ответ 2

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

Итак, если он говорит /usr/local как путь в сообщении об ошибке:

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

Вы пишете

chmod go-w /usr/local

Ответ 3

Мне пришлось использовать -R для исправления моей:

chmod -R go-w /Users/username

Ответ 4

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

enter image description here

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

Permissions differ on "usr"; should be drwxr-xr-x ; they are drwxrwxrwx.
Repaired "usr"

Ответ 5

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

Вещь, которая его работала, была chmod go-w/User/username/.rvm