Nhận được cảnh báo “Dir / home / cơ hội có thể ghi trên thế giới không an toàn” trong PATH, chế độ 040777 cho đường ray và đá quý


84

Tôi đã thử điều này nhưng nó không hoạt động và dường như dành cho osx. Tôi có bản cài đặt Ubuntu 10.10 mới với rvm, rails 3 và ruby ​​1.9.2. Tôi có một ứng dụng đường ray mới nhưng sử dụng đá quý hoặc đường ray dẫn đến các cảnh báo sau (có độ trễ).

$ 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

Chỉ cần nó quan trọng, đây là Gemfile của tôi:

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

Tôi cũng có tiền thưởng trên stackoverflow.com/questions/5360327/… nếu giải pháp tương tự. Máy chủ của tôi sẽ thực sự khởi động nên tôi không biết có phải vấn đề tương tự hay không. (Im một * nix newb)
Chance

1
Khi bạn nói rằng bạn đã thử câu trả lời từ câu hỏi khác, bạn chỉ cần sử dụng lệnh được đề xuất ở đó sudo chmod go-w /usr/local/bin:? Nếu vậy hãy thử chmod go-w /home/chancethay thế.
matt

matt, bạn thực sự có thể trả lời với điều đó? đó là một câu hỏi ngu ngốc nhưng / usr / local / bin không thành công một cách âm thầm vì vậy tôi nghĩ rằng chmod đã thông qua. Cảm ơn anh bạn.
Chance


Tôi gặp lỗi ở trên cho / usr / lib - Và thậm chí không thể thực hiện chmod go-w vì không có quyền cho Bất kỳ người dùng nào khác ngoài Root. Vì một số lý do nhất định, tôi không thể vào Root. Do đó, giải pháp bây giờ là gì khác hơn là bỏ qua?
Chaitanya Bapat

Câu trả lời:


188

Nếu bạn đã thử sudo chmod go-w /usr/local/bintừ câu trả lời khác, hãy thử:

chmod go-w /home/chance

thay thế.

Điều dường như đã xảy ra là bằng cách nào đó thư mục chính ( /home/chance) của bạn đã được thêm vào của bạn $PATH(danh sách các thư mục mà Hệ điều hành tìm kiếm khi cố gắng tìm tệp thực thi để khởi chạy) và cũng đã thay đổi quyền của nó để bất kỳ ai cũng có thể ghi vào nó. Đây có thể là một vấn đề bảo mật, vì người dùng khác có thể đặt tệp thực thi vào thư mục này mà bạn có thể vô tình khởi chạy. Ruby nhận thấy điều này và đưa ra cảnh báo.

Lệnh này thay đổi quyền của thư mục để nó không còn có thể ghi được trên thế giới.

Trong unix, quyền đối với tệp được chỉ định cho ba danh mục, chủ sở hữu tệp (người dùng), nhóm của tệp (group) và mọi người khác (người khác). (Xem Google để biết thêm về quyền đối với tệp unix).

Vì vậy, hãy chia nhỏ lệnh trên:

chmod - thay đổi 'chế độ' của tệp (nghĩa là quyền của nó)

go - cho nhóm (g) và những người khác (o)

-w - (trừ w) xóa quyền ghi

/home/chance - tệp (hoặc thư mục) được đề cập

Trong câu trả lời khác, thư mục gây ra sự cố /usr/local/bin, được sở hữu bởi root, vì vậy sudocần phải thay đổi quyền đối với nó. /home/chancelà thư mục chính của bạn được sở hữu bởi chancengười dùng có thể thay đổi quyền đối với nó - không sudobắt buộc.


Khi tôi Lubuntu 16.04có cảnh báo: Insecure world writable dir /tmp/. in PATH, mode 041777cũng gây ra vòng lặp vô hạn về cảnh báo. Sau đó, tôi thực hiện sudo chmod go-w /tmplệnh và nó đã giải quyết được sự cố.
Stephane

38

Bạn sử dụng chmod go-w đến bất kỳ đường dẫn nào mà thiết bị đầu cuối cung cấp cho bạn.

Vì vậy, nếu nó nói / usr / local là đường dẫn trong thông báo lỗi:

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

Bạn viết

chmod go-w /usr/local

22

Tôi đã phải sử dụng -R để sửa lỗi của mình:

chmod -R go-w /Users/username

Đừng chạy với sudo trừ khi bạn biết mình đang làm gì! (bạn đã kiểm tra quyền của mọi thư mục bên trong)
qwr

9

(Nếu bạn đang sử dụng máy Mac) Hãy thử tùy chọn "Repair Disk Permissions" từ tiện ích đĩa

nhập mô tả hình ảnh ở đây

Có thể một vài dòng trong nhật ký chi tiết sẽ nói:

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

4
Câu hỏi được gắn thẻ Linux, không phải Mac. Tuy nhiên, chủ đề này là lần đầu tiên xảy ra với Google và tôi đang sử dụng máy Mac, vì vậy điều này phù hợp với tôi! Canonical Mac trả lời cho câu hỏi tương tự ở đây .
Bluu

5

Tôi đang sử dụng máy Mac nên / home / username không hoạt động với tôi. Tuy nhiên, khi tôi cố gắng thay đổi quyền cho / Người dùng / tên người dùng , lỗi vẫn tiếp diễn.

Điều khiến nó hoạt động là chmod go-w /User/username/.rvm


1
đó là bởi vì sự cố đến từ thư mục / usr, không phải từ thư mục / User / username hoặc ~ (home).
Eduardo Chongkan,

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.