Obteniendo la advertencia "Directorio / casa / chance de escritura en un mundo inseguro" en PATH, modo 040777 para rails y gem


84

Intenté esto pero no funcionó y parecía ser para osx. Tengo una instalación nueva de Ubuntu 10.10 con rvm, rails 3 y ruby ​​1.9.2. Tengo una aplicación de rieles nueva, pero el uso de gemas o rieles da como resultado las siguientes advertencias (con retraso).

$ rieles -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 caso de que importe, aquí está mi 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

También tengo una recompensa en stackoverflow.com/questions/5360327/… si es la misma solución. Mi servidor realmente se iniciará, así que no sabía si era el mismo problema. (Im a * nix newb)
Chance

1
Cuando dijo que intentó la respuesta de la otra pregunta, ¿utilizó el comando sugerido allí sudo chmod go-w /usr/local/bin:? Si es así, intente en su chmod go-w /home/chancelugar.
Matt

Matt, ¿puedes responder con eso? fue una pregunta estúpida, pero / usr / local / bin falló silenciosamente, así que pensé que el chmod pasó. Gracias hombre.
Chance

posible duplicado de la advertencia
Directorio de

Recibo el error anterior para / usr / lib - Y ni siquiera puedo ejecutar chmod go-w sin permiso para ningún otro usuario que no sea Root. Por ciertas razones, no puedo ingresar a Root. Por lo tanto, ¿cuál es la solución ahora aparte de ignorar?
Chaitanya Bapat

Respuestas:


188

Si probó sudo chmod go-w /usr/local/bincon la otra respuesta, intente:

chmod go-w /home/chance

en lugar.

Lo que parece haber sucedido es que de alguna manera su directorio de inicio ( /home/chance) se ha agregado a su $PATH(la lista de directorios que busca el sistema operativo cuando intenta encontrar un ejecutable para iniciar) y también se han cambiado sus permisos para que cualquiera pueda escribir en él. Esto es un problema potencial de seguridad, ya que otro usuario podría poner un ejecutable en este directorio que podría iniciar accidentalmente. Ruby se da cuenta de esto y emite la advertencia.

Este comando cambia los permisos del directorio para que ya no sea de escritura mundial.

En Unix, los permisos de archivo se especifican para tres categorías, el propietario del archivo (usuario), el grupo del archivo (grupo) y todos los demás (otros). (Consulte Google para obtener más información sobre los permisos de archivos Unix).

Entonces, desglosando el comando anterior:

chmod - cambiar el 'modo' del archivo (es decir, sus permisos)

go - para el grupo (g) y otros (o)

-w - (menos w) eliminar el permiso de escritura

/home/chance - el archivo (o directorio) en cuestión

En la otra respuesta, el directorio que estaba causando el problema era /usr/local/bin, que es propiedad de root, por lo que sudose requiere cambiar los permisos en él. /home/chancees su directorio de inicio que es propiedad del chanceusuario que puede cambiar los permisos en él, no es sudonecesario.


Al Lubuntu 16.04tener la advertencia: Insecure world writable dir /tmp/. in PATH, mode 041777también estaba causando un bucle infinito en la advertencia. Luego ejecuté el sudo chmod go-w /tmpcomando y resolvió el problema.
Stephane

38

Utiliza chmod go-w para cualquier ruta que le dé la terminal.

Entonces, si dice / usr / local como ruta en el mensaje de error:

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

Usted escribe

chmod go-w /usr/local

22

Tuve que usar -R para arreglar el mío:

chmod -R go-w /Users/username

¡No corra con sudo a menos que sepa lo que está haciendo! (ha verificado los permisos de cada carpeta dentro)
qwr

9

(Si está en una Mac) Pruebe la opción "Reparar permisos de disco" de la utilidad de disco

ingrese la descripción de la imagen aquí

Probablemente un par de líneas en el registro de detalles dirán:

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

4
La pregunta está etiquetada como Linux, no Mac. Sin embargo, este hilo fue el primer éxito de Google, y estoy en una Mac, ¡así que funcionó para mí! Canonical Mac responde a la misma pregunta aquí .
Bluu

5

Estoy en una Mac, por lo que / home / username no funcionó para mí. Sin embargo, cuando intenté cambiar los permisos de / User / username , el error persistió.

Lo que hizo que funcionara fue chmod go-w /User/username/.rvm


1
eso es porque el problema proviene de la carpeta / usr, no de la carpeta / User / username o ~ (home).
Eduardo Chongkan

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.