Отримання попередження “Небезпечний для запису в світ каталог / будинок / шанс” у PATH, режим 040777 для рейок та дорогоцінних каменів


84

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

$ рейки -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

У мене також є нагорода на stackoverflow.com/questions/5360327/…, якщо це те саме рішення. Мій сервер фактично запуститься, тому я не знав, чи це була та сама проблема. (Im a * nix newb)
Шанс,

1
Коли ви сказали, що спробували відповісти на інше питання, чи просто використовували запропоновану там команду sudo chmod go-w /usr/local/bin:? Якщо так, спробуйте chmod go-w /home/chanceзамість цього.
matt

matt, ти насправді можеш відповісти цим? це було дурне запитання, але / usr / local / bin мовчки не вдалося, тому я думав, що chmod пройшов. Спасибі людино.
Шанс


Я отримую вищезазначену помилку для / usr / lib - і навіть не можу виконати chmod go-w, оскільки немає дозволу для будь-якого користувача, крім Root. З певних причин я не можу ввести Root. Отже, яке рішення зараз, окрім ігнорування?
Чайтанья Бапат,

Відповіді:


188

Якщо ви пробували 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потрібно.


На моє Lubuntu 16.04попередження: Insecure world writable dir /tmp/. in PATH, mode 041777також викликав нескінченну циклічність попередження. Потім я виконав sudo chmod go-w /tmpкоманду, і вона вирішила проблему.
Стефан

38

Ви використовуєте chmod go-w до будь-якого шляху, який вам надає термінал.

Отже, якщо там вказано / usr / local як шлях у повідомленні про помилку:

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

Ви пишете

chmod go-w /usr/local

22

Мені довелося використовувати -R, щоб виправити моє:

chmod -R go-w /Users/username

Не бігайте з sudo, якщо не знаєте, що робите! (Ви перевірили дозволи для кожної папки всередині)
qwr

9

(Якщо ви перебуваєте на Mac) Спробуйте параметр "Відновити права доступу до диска" в утиліті диска

введіть тут опис зображення

Можливо, пара рядків у журналі деталей скаже:

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

4
Питання позначене Linux, а не Mac. Однак цей потік був першим хітом Google, і я працюю на Mac, тож це мені вдалося! Canonical Mac відповідає на те саме питання тут .
Bluu

5

Я працюю на Mac, тому / home / username не працював для мене. Однак, коли я намагався змінити дозволи для / User / username , помилка не зникала.

Справа в тому, що це спрацювало chmod go-w /User/username/.rvm


1
це тому, що проблема походить з папки / usr, а не з папки / User / username або ~ (home).
Едуардо Чонгкан

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.