87 votes

L'avertissement "Insecure world writable dir /home/chance " dans PATH, mode 040777 pour rails et gem

J'ai essayé este 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 application rails fraîche, mais l'utilisation de gem ou de 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

Au cas où cela aurait de l'importance, 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

0 votes

J'ai aussi une prime sur stackoverflow.com/questions/5360327/ si c'est la même solution. Mon serveur démarre effectivement et je ne savais pas si c'était le même problème. (Je suis un newb *nix)

1 votes

Lorsque vous avez dit que vous avez essayé la réponse de l'autre question, avez-vous simplement utilisé la commande suggérée ici : sudo chmod go-w /usr/local/bin ? Si oui, essayez chmod go-w /home/chance à la place.

0 votes

Matt, peux-tu vraiment répondre avec ça ? c'était une question stupide mais /usr/local/bin a échoué silencieusement donc je pensais que le chmod était passé. Merci.

192voto

matt Points 33799

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

chmod go-w /home/chance

à la place.

Ce qui semble s'être passé, 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 dans lesquels le système d'exploitation effectue des recherches lorsqu'il tente de trouver un exécutable à lancer) et ses autorisations ont également été modifiées afin que tout le monde puisse y écrire. Il s'agit d'un problème potentiel de sécurité, car un autre utilisateur pourrait placer dans ce répertoire un exécutable que vous pourriez lancer accidentellement. Ruby le remarque et émet un avertissement.

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

Dans unix, les autorisations de fichiers sont spécifiées pour trois catégories, le propriétaire du fichier (user), le groupe du fichier (group), et tous les autres (other). (Voir Google pour plus d'informations sur les autorisations de fichiers sous unix).

Donc, en décomposant la commande ci-dessus :

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

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

-w - (moins w) supprimer la permission d'écriture

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

Dans l'autre réponse le répertoire qui causait le problème était /usr/local/bin qui appartient à Root, donc sudo est nécessaire pour changer les permissions sur celui-ci. /home/chance est votre répertoire personnel qui appartient au chance l'utilisateur qui peut modifier les permissions sur ce document - non sudo nécessaire.

0 votes

Sur mon Lubuntu 16.04 ayant l'avertissement : Insecure world writable dir /tmp/. in PATH, mode 041777 provoquait également une boucle infinie sur l'avertissement. J'ai ensuite exécuté la commande sudo chmod go-w /tmp et cela a résolu le problème.

39voto

Temo Dape Points 161

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

Donc si le message d'erreur indique /usr/local comme chemin d'accès :

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

Vous écrivez

chmod go-w /usr/local

23voto

bryanus Points 63

J'ai dû utiliser -R pour réparer le mien :

chmod -R go-w /Users/username

0 votes

Ne pas exécuter avec sudo sauf si vous savez ce que vous faites ! (vous avez vérifié les permissions de chaque dossier à l'intérieur)

9voto

Wazery Points 2082

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

enter image description here

Il y aura probablement quelques lignes dans le journal des détails :

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

4 votes

La question porte sur Linux, pas sur Mac. Cependant, ce fil de discussion a été le premier résultat de Google, et je suis sur un Mac, donc cela a fonctionné pour moi ! Réponse de Canonical Mac à la même question ici .

5voto

Pablo Marambio Points 871

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

Ce qui l'a fait fonctionner, c'est chmod go-w /User/username/.rvm

1 votes

C'est parce que le problème vient du dossier /usr, et non du dossier /User/username ou ~ (home).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X