Ricezione dell'avviso "Insecure world writable dir / home / chance" in PATH, mode 040777 for rails and gem


85

Ho provato questo ma non ha funzionato e sembrava essere per OSX. Ho una nuova installazione di Ubuntu 10.10 con rvm, rails 3 e ruby ​​1.9.2. Ho una nuova app per rails ma l'utilizzo di gem o rails genera i seguenti avvisi (con ritardo).

$ 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

Nel caso in cui sia importante, ecco il mio 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

Ho anche una taglia su stackoverflow.com/questions/5360327/… se è la stessa soluzione. Il mio server verrà effettivamente avviato, quindi non sapevo se fosse lo stesso problema. (Sono un * nix newb)
Chance

1
Quando hai detto di aver provato la risposta dall'altra domanda, hai appena usato il comando suggerito lì sudo chmod go-w /usr/local/bin:? Se è così, prova chmod go-w /home/chanceinvece.
matt

matt, puoi davvero rispondere con questo? era una domanda stupida ma / usr / local / bin non è riuscito silenziosamente, quindi ho pensato che chmod fosse andato a buon fine. Grazie uomo.
Possibilità


Ricevo l'errore precedente per / usr / lib - E non posso nemmeno eseguire chmod go-w come nessun permesso per qualsiasi utente diverso da Root. Per alcuni motivi, non posso entrare in Root. Quindi qual è la soluzione ora se non ignorare?
Chaitanya Bapat

Risposte:


188

Se hai provato sudo chmod go-w /usr/local/bindall'altra risposta, prova:

chmod go-w /home/chance

anziché.

Quello che sembra essere successo è che in qualche modo la tua directory home ( /home/chance) è stata aggiunta alla tua $PATH(l'elenco delle directory che il sistema operativo cerca quando cerca di trovare un eseguibile da avviare) e ha anche cambiato i suoi permessi in modo che chiunque possa scriverci. Questo è un potenziale problema di sicurezza, poiché un altro utente potrebbe inserire un eseguibile in questa directory che potresti avviare accidentalmente. Ruby lo nota e lancia l'avviso.

Questo comando modifica i permessi della directory in modo che non sia più scrivibile da tutto il mondo.

In unix, i permessi dei file sono specificati per tre categorie, il proprietario del file (utente), il gruppo del file (gruppo) e tutti gli altri (altro). (Vedi Google per ulteriori informazioni sui permessi dei file unix).

Quindi abbattere il comando sopra:

chmod - cambiare la 'modalità' del file (cioè i suoi permessi)

go - per il gruppo (g) e altri (o)

-w - (meno w) rimuove il permesso di scrittura

/home/chance - il file (o directory) in questione

Nell'altra risposta era la directory che causava il problema /usr/local/bin, che è di proprietà di root, quindi sudoè necessario modificare le autorizzazioni su di essa. /home/chanceè la tua home directory di proprietà chancedell'utente che può modificare i permessi su di essa - non è sudorichiesta.


Sul mio Lubuntu 16.04 l'avviso: Insecure world writable dir /tmp/. in PATH, mode 041777stava anche causando un ciclo infinito sull'avvertimento. Ho quindi eseguito il sudo chmod go-w /tmpcomando e ha risolto il problema.
Stephane

38

È possibile utilizzare il chmod go-w per qualsiasi percorso terminale ti dà.

Quindi, se dice / usr / local come percorso nel messaggio di errore:

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

Scrivi

chmod go-w /usr/local

23

Ho dovuto usare -R per aggiustare il mio:

chmod -R go-w /Users/username

Non eseguire con sudo a meno che tu non sappia cosa stai facendo! (hai controllato i permessi di ogni cartella all'interno)
qwr

9

(Se sei su un Mac) Prova l'opzione "Ripara permessi del disco" dall'utilità del disco

inserisci qui la descrizione dell'immagine

Probabilmente un paio di righe nel registro dei dettagli diranno:

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

4
La domanda è etichettata Linux, non Mac. Tuttavia questo thread è stato il primo successo di Google e sono su un Mac, quindi ha funzionato per me! Canonical Mac risponde alla stessa domanda qui .
Bluu

5

Sono in un Mac, quindi / home / username non ha funzionato per me. Tuttavia, quando ho provato a modificare le autorizzazioni per / Utente / nome utente , l'errore persisteva.

La cosa che l'ha fatto funzionare è stata chmod go-w /User/username/.rvm


1
questo perché il problema deriva dalla cartella / usr, non dalla cartella / User / username o dalla cartella ~ (home).
Eduardo Chongkan

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.