web-dev-qa-db-fra.com

Obtention de l'avertissement "Répertoire non sécurisé en écriture / home / chance" dans PATH, mode 040777 pour Rails et gem

J'ai essayé this mais cela n'a pas fonctionné et semblait être pour osx. J'ai une nouvelle installation Ubuntu 10.10 avec rvm, Rails 3 et Ruby 1.9.2. J'ai une nouvelle Rails app mais en utilisant soit gem ou Rails entraîne les avertissements suivants (avec décalage).

$ 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

En cas de problème, voici mon 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
78
Chance

Si vous avez essayé Sudo chmod go-w /usr/local/bin de l’autre réponse, essayez:

chmod go-w /home/chance

au lieu.

Ce qui semble être arrivé, c’est que d’une manière ou d’une autre votre répertoire personnel (/home/chance) a été ajouté à votre $PATH (la liste des répertoires recherchés par le système d’exploitation lorsqu’il essaie de trouver un fichier exécutable à lancer) et dont les autorisations ont également été modifiées afin que tout le monde puisse y écrire. Cela pourrait poser un problème de sécurité, car un autre utilisateur pourrait placer dans ce répertoire un fichier exécutable que vous pourriez lancer par inadvertance. Ruby le remarque et envoie l'avertissement.

Cette commande modifie les autorisations du répertoire afin qu'il ne soit plus accessible en écriture au monde.

Sous Unix, les autorisations de fichier sont spécifiées pour trois catégories: le propriétaire du fichier (utilisateur), le groupe du fichier (groupe) et tous les autres (autres). (Voir Google pour plus d'informations sur les autorisations de fichiers Unix).

Donc, décomposant la commande ci-dessus:

chmod - change le 'mode' du fichier (c'est-à-dire ses permissions)

go - pour le groupe (g) et les autres (o)

-w - (moins w) supprimer l'autorisation d'écriture

/home/chance - le fichier (ou le répertoire) en question

Dans l'autre réponse, le répertoire à l'origine du problème était /usr/local/bin, qui appartient à la racine, donc Sudo est nécessaire pour changer les autorisations. /home/chance est votre répertoire personnel qui appartient à l’utilisateur chance qui peut modifier ses autorisations - aucun Sudo requis.

179
matt

Vous utilisez le chmod go-w quel que soit le chemin que le terminal vous donne.

Donc, s'il indique/usr/local comme chemin dans le message d'erreur:

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

Vous écrivez

chmod go-w /usr/local
34
Temo Dape

Je devais utiliser -R pour réparer le mien:

chmod -R go-w /Users/username
20
bryanus

(Si vous êtes sur un Mac) Essayez l'option "Réparer les autorisations du disque" à partir de l'utilitaire de disque.

enter image description here

Quelques lignes dans le journal des détails indiqueront probablement:

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

Je suis sur un Mac, donc / home/ nom d'utilisateur n'a pas fonctionné pour moi. Cependant, lorsque j'ai essayé de modifier les autorisations pour / User/ nom d'utilisateur , l'erreur a persisté.

La chose qui l'a fait fonctionner était chmod go-w /User/username/.rvm

3
Pablo Marambio

Si votre environnement ne vous permet pas de corriger cette erreur correctement (c.-à-d. Ruby vit sur un partage réseau ou autre)), voir cette réponse pour un moyen de supprimer l'erreur =.

2
Connor McKay