Uzyskiwanie ostrzeżenia „Niebezpieczny świat zapisywalny katalog / dom / szansa” w PATH, tryb 040777 dla szyn i klejnotów

84

Próbowałem tego, ale nie zadziałało i wydawało się, że jest przeznaczone dla OSX. Mam świeżą instalację Ubuntu 10.10 z rvm, rails 3 i ruby ​​1.9.2. Mam nową aplikację rails, ale użycie klejnotu lub szyn powoduje wyświetlenie następujących ostrzeżeń (z opóźnieniem).

$ 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

Na wszelki wypadek, oto mój plik 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
Szansa
źródło
Mam również nagrodę na stackoverflow.com/questions/5360327/ ... jeśli to samo rozwiązanie. Mój serwer faktycznie się uruchomi, więc nie wiedziałem, czy to ten sam problem. (Im a * nix newb)
Chance
1
Kiedy mówiłeś, że próbowałeś odpowiedź z innego pytanie, czy wystarczy użyć polecenia zaproponował tam: sudo chmod go-w /usr/local/bin? Jeśli tak, spróbuj chmod go-w /home/chancezamiast tego.
Matt
Matt, czy możesz tak odpowiedzieć? to było głupie pytanie, ale / usr / local / bin po cichu zawiódł, więc pomyślałem, że chmod przeszedł. Dzięki stary.
Szansa na
Otrzymuję powyższy błąd dla / usr / lib - I nie mogę nawet wykonać chmod go-w, ponieważ nie ma uprawnień dla żadnego użytkownika innego niż Root. Z pewnych powodów nie mogę wejść do roota. Zatem jakie jest teraz rozwiązanie inne niż ignorowanie?
Chaitanya Bapat

Odpowiedzi:

188

Jeśli próbowałeś sudo chmod go-w /usr/local/binz innej odpowiedzi, spróbuj:

chmod go-w /home/chance

zamiast.

Wydaje się, że zdarzyło się to, że w jakiś sposób twój katalog domowy ( /home/chance) został dodany do twojego $PATH(lista katalogów przeszukiwanych przez system operacyjny, próbując znaleźć plik wykonywalny do uruchomienia), a także zmieniły się jego uprawnienia, aby każdy mógł w nim pisać. Jest to potencjalny problem z bezpieczeństwem, ponieważ inny użytkownik może umieścić plik wykonywalny w tym katalogu, który możesz przypadkowo uruchomić. Ruby zauważa to i wyświetla ostrzeżenie.

To polecenie zmienia uprawnienia katalogu, tak że nie można już do niego zapisywać.

W systemie UNIX uprawnienia do plików są określone dla trzech kategorii: właściciela pliku (użytkownika), grupy pliku (grupy) i wszystkich pozostałych (pozostałych). (Zobacz Google, aby uzyskać więcej informacji na temat uprawnień do plików w systemie UNIX).

Rozbijając powyższe polecenie:

chmod - zmień 'tryb' pliku (tj. jego uprawnienia)

go - dla grupy (g) i innych (o)

-w - (minus w) usuń uprawnienia do zapisu

/home/chance - odpowiedni plik (lub katalog)

W drugiej odpowiedzi katalog, który powodował problem /usr/local/bin, to katalog, którego właścicielem jest root, więc sudowymagana jest zmiana uprawnień do niego. /home/chanceto Twój katalog domowy, którego właścicielem jest chanceużytkownik, który może zmieniać uprawnienia do niego - nie jest sudowymagane.

matowe
źródło
Gdy otrzymałem Lubuntu 16.04ostrzeżenie: Insecure world writable dir /tmp/. in PATH, mode 041777również powodowało nieskończone zapętlenie ostrzeżenia. Następnie wykonałem sudo chmod go-w /tmppolecenie i rozwiązałem problem.
Stephane
38

Używasz chmod go-w do dowolnej ścieżki wskazanej przez terminal.

Więc jeśli mówi / usr / local jako ścieżkę w komunikacie o błędzie:

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

Ty piszesz

chmod go-w /usr/local
Temo Dape
źródło
22

Musiałem użyć -R, aby naprawić moje:

chmod -R go-w /Users/username
bryanus
źródło
Nie biegaj z sudo, chyba że wiesz, co robisz! (sprawdziłeś uprawnienia do każdego folderu w obrębie)
qwr
9

(Jeśli używasz komputera Mac) Wypróbuj opcję „Napraw uprawnienia dysku” w narzędziu dyskowym

wprowadź opis obrazu tutaj

Prawdopodobnie kilka wierszy w dzienniku szczegółów powie:

Permissions differ on “usr”; should be drwxr-xr-x ; they are drwxrwxrwx.
Repaired “usr”
Wazery
źródło
4
Pytanie jest oznaczone jako Linux, a nie Mac. Jednak ten wątek był pierwszym hitem Google, a jestem na komputerze Mac, więc to zadziałało! Canonical Mac odpowiedź na to samo pytanie tutaj .
Bluu
5

Jestem na komputerze Mac, więc / home / username nie działa dla mnie. Jednak gdy próbowałem zmienić uprawnienia dla / User / username , błąd nie ustąpił.

Rzecz, która sprawiła, że ​​to działało, to chmod go-w /User/username/.rvm

Pablo Marambio
źródło
1
Dzieje się tak, ponieważ problem pochodzi z folderu / usr, a nie z folderu / User / username lub ~ (home).
Eduardo Chongkan
3

Jeśli twoje środowisko nie pozwala na poprawną naprawę tego błędu (np. Ruby żyje w udziale sieciowym lub podobnym), zobacz tę odpowiedź, aby dowiedzieć się, jak usunąć błąd .

Connor McKay
źródło