PATH, raylar ve gem için mod 040777'de "Güvensiz dünya yazılabilir dizini / ev / şans" uyarısını alma


85

Ben denedim bu ama işe yaramadı ve osx için görünüyordu. Rvm, rails 3 ve ruby ​​1.9.2 ile yeni bir Ubuntu 10.10 kurulumum var. Yeni bir raylar uygulamam var ancak gem veya rayları kullanmak aşağıdaki uyarılara neden oluyor (gecikmeli).

$ raylar -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

Sadece önemli olması durumunda, işte benim 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

Aynı çözüm ise stackoverflow.com/questions/5360327/… adresinde de bir ödülüm var . Sunucum aslında başlayacak, bu yüzden aynı sorun olup olmadığını bilmiyordum. (Im a * nix newb)
Chance

1
Diğer sorunun cevabını denediğinizi söylediğinizde, orada önerilen komutu kullandınız sudo chmod go-w /usr/local/binmı :? Eğer öyleyse, deneyin chmod go-w /home/chance.
matt

Matt, bununla gerçekten cevap verebilir misin? aptalca bir soruydu ama / usr / local / bin sessizce başarısız oldu, bu yüzden chmod'un geçtiğini düşündüm. Teşekkürler dostum.
Chance


/ Usr / lib için yukarıdaki hatayı alıyorum - Ve Root dışında herhangi bir kullanıcı için izin olmadığı için chmod go-w'yi bile gerçekleştiremiyorum. Bazı nedenlerden dolayı Kök'e giremiyorum. Öyleyse, görmezden gelmekten başka çözüm nedir?
Chaitanya Bapat

Yanıtlar:


188

sudo chmod go-w /usr/local/binDiğer yanıtı denediyseniz şunu deneyin:

chmod go-w /home/chance

yerine.

Görünüşe göre, ana dizininiz ( /home/chance) bir şekilde sizin $PATH(işletim sisteminin başlatılacak bir yürütülebilir dosya bulmaya çalışırken aradığı dizinler listesi ) eklenmiş ve ayrıca izinleri, herkesin yazabilmesi için değiştirilmiş olmasıdır. Başka bir kullanıcı bu dizine yanlışlıkla başlatabileceğiniz bir yürütülebilir dosya koyabileceğinden, bu potansiyel bir güvenlik sorunudur. Ruby bunu fark eder ve uyarıyı verir.

Bu komut dizinin izinlerini artık herkes tarafından yazılabilir olmayacak şekilde değiştirir.

Unix'te dosya izinleri üç kategori için belirlenir; dosya sahibi (kullanıcı), dosyanın grubu (grup) ve diğer herkes (diğer). (Unix dosya izinleri hakkında daha fazla bilgi için Google'a bakın).

Öyleyse yukarıdaki komutu bozalım:

chmod - dosyanın 'modunu' değiştirin (yani izinleri)

go - grup (g) ve diğerleri (o) için

-w - (eksi w) yazma iznini kaldır

/home/chance - söz konusu dosya (veya dizin)

Diğer yanıtta, soruna neden olan dizin, /usr/local/binköke ait olduğu sudoiçin üzerindeki izinlerin değiştirilmesi gerektiğidir. /home/chance, chanceüzerindeki izinleri değiştirebilen kullanıcıya ait olan ana dizininizdir - sudogerekli değildir.


Benim Açık Lubuntu 16.04uyarıyı sahip: Insecure world writable dir /tmp/. in PATH, mode 041777Ayrıca uyarı üzerine bir sonsuz döngü neden oluyordu. Daha sonra sudo chmod go-w /tmpkomutu uyguladım ve sorunu çözdüm.
Stephane

38

Terminalin size verdiği yol için chmod go-w'yi kullanırsınız .

Öyleyse, hata mesajındaki yol olarak / usr / local yazıyorsa:

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

Sen yaz

chmod go-w /usr/local

23

Benimkini düzeltmek için -R kullanmalıydım:

chmod -R go-w /Users/username

Ne yaptığınızı bilmediğiniz sürece sudo ile koşmayın! (içindeki her klasörün izinlerini kontrol
ettiniz

9

(Mac kullanıyorsanız) Disk yardımcı programından "Disk İzinlerini Onar" seçeneğini deneyin.

görüntü açıklamasını buraya girin

Muhtemelen ayrıntı günlüğündeki birkaç satır şunu söyleyecektir:

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

4
Soru Mac değil, Linux olarak etiketlendi. Ancak bu ileti dizisi Google'ın ilk hitiydi ve ben bir Mac kullanıyorum, bu yüzden bu benim için çalıştı! Canonical Mac burada aynı soruya cevap veriyor .
Bluu

5

Mac'teyim, bu yüzden / home / username benim için çalışmadı. Bununla birlikte, / Kullanıcı / kullanıcı adı için izinleri değiştirmeye çalıştığımda hata devam etti.

Çalışmasını sağlayan şey şuydu: chmod go-w /User/username/.rvm


1
bunun nedeni sorunun / User / username veya ~ (home) klasöründen değil / usr klasöründen kaynaklanmasıdır.
Eduardo Chongkan

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.