Điều gì khiến OS X đánh dấu một thư mục là Cách ly?


35

Tôi đã có một thư mục bên dưới ~/Sites, hãy gọi nó Foo, từ đó tôi đang chia sẻ một trang phát triển trang Wordpress thông qua Apache. Mỹ đang làm việc này, tôi đã ánh xạ foo.localđến 127.0.0.1trong tập tin host của tôi và đã truy cập vào trang web từ đó trên máy tính xách tay của tôi.

Sau đó, tôi đã cố gắng truy cập trang web từ iPhone của tôi. Tôi có thể thấy chỉ mục gốc của ~/Sitesđiện thoại bằng cách lướt tới my-computers-hostname.local, nhưng không thể truy cập trang Wordpress, vì nó đã được thiết lập để tin rằng địa chỉ của nó là foo.local, và do đó đã mã hóa các tham chiếu đến URL đó trong cơ sở dữ liệu của nó. Khi tôi cố gắng thay đổi cài đặt URL của nó thành my-computers-hostname.local, một điều rất lạ đã xảy ra: Tôi đã nhận được lỗi ủy quyền khi cố lưu thay đổi. Từ thời điểm đó trở đi, toàn bộ thư mục chứa trang Wordpress biến mất khỏi trang chỉ mục tại foo.local/ my-computers-hostname.localvà mọi nỗ lực truy cập nó bằng URL đều gặp phải lỗi 403 - Ủy quyền từ chối từ máy chủ web.

Liệt kê thư mục được đề cập trong Terminal cho tôi thấy rằng com.apple.quarantinethuộc tính mở rộng đã được áp dụng cho nó và cho tất cả các tệp có trong đó. Điều gì sẽ khiến hệ điều hành cách ly thư mục? Đó có phải là quyền truy cập đã cố gắng từ một máy khác hay liên quan đến cấu hình của Wordpress?

Câu trả lời:


43

Các com.apple.quarantinethuộc tính mở rộng có thể không liên quan gì đến các vấn đề bạn đang gặp phải với Apache. Chúng là một phần của tính năng kiểm dịch tệp đã được thêm vào trong 10.5 :

Kiểm dịch tệp là một tính năng mới trong Leopard được thiết kế để bảo vệ người dùng khỏi các cuộc tấn công trojan. Nó cho phép các ứng dụng tải xuống nội dung tệp từ Internet để đặt các tệp trong dịch vụ kiểm dịch của Wap để chỉ ra rằng tệp có thể từ một nguồn không đáng tin cậy. Một ứng dụng sẽ cách ly một tệp chỉ bằng cách gán các giá trị cho một hoặc nhiều thuộc tính cách ly để lưu giữ thông tin về thời điểm và nơi tệp đến.

Khi API dịch vụ khởi chạy được sử dụng để mở tệp đã cách ly và tệp dường như là một ứng dụng, tập lệnh hoặc loại tệp thực thi khác, Launch Services sẽ hiển thị cảnh báo để xác nhận người dùng hiểu tệp là một loại ứng dụng.

Các com.apple.quarantinethuộc tính mở rộng có thể được thêm vào khi:

  • Bạn tải xuống một tệp với ứng dụng nhận biết kiểm dịch, như Safari, Chrome hoặc Transmission. Đối với một vài ứng dụng như Firefox, việc kiểm dịch buộc phải được kích hoạt /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist.
  • Bạn trích xuất một kho lưu trữ với một ứng dụng như Archive Utility hoặc OS X's tarhoặc zip.
  • Bạn tạo một tệp với một ứng dụng đã LSFileQuarantineEnabledđược đặt thành đúng trong Info.plist.

Các thuộc tính mở rộng có các trường cho trạng thái kiểm dịch, dấu thời gian, tác nhân khởi nguồn sự kiện kiểm dịch và đôi khi là UUID:

$ xattr -p com.apple.quarantine Worksheet_v10.4.pdf
0042;51ea420b;Safari.app;5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
$ date -r 0x51ea420b
Sat Jul 20 10:53:47 EEST 2013
$ sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 .dump|grep 5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
INSERT INTO "LSQuarantineEvent" VALUES('5E2F48EA-1356-4D57-BFEA-571EE8ADC08C',395999627.472166,'com.apple.Safari','Safari','http://images.apple.com/server/docs/Worksheet_v10.4.pdf',NULL,NULL,0,NULL,'http://images.apple.com/',NULL);

Trường đầu tiên là một bitfield thập lục phân, ví dụ như bit thứ bảy (2 ^ 6 hoặc 0x40) thường được đặt sau khi bạn mở tệp lần đầu tiên.

Bạn có thể xóa các thuộc tính mở rộng với xattr -dr com.apple.quarantine ~/Sites, nhưng nó có thể sẽ không có bất kỳ ảnh hưởng nào đến Apache. Tuy nhiên, nó sẽ vô hiệu hóa hộp thoại "là một tệp được tải xuống từ Internet".


"Tùy chọn -r không được công nhận"
Jamie Ivanov

3
xattr -dr com.apple.quarantine <path>công trinh !
ký sinh

Tham khảo để biết thông tin chi tiết: thảo
luận.apple.com/message/15507936#message15507936

Tính năng cực kỳ khó chịu, tôi chưa bao giờ sử dụng nó. Cảm ơn đã giải thích
cjohansson

1
xattr -dr com.apple.quarantine <path>đã cho tôi option -r not recognized, nhưng xattr -d com.apple.quarantine <path>làm việc!
saulspatz
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.