Получение предупреждения "Небезопасный мир, доступный для записи 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
Ответ 6
Если ваша среда не позволяет исправить эту ошибку должным образом (т.е. ruby живет на сетевой ресурс или какой-то такой), см. этот ответ для способа подавления ошибки.