Kể từ OS X 10.7.3, trình soạn thảo văn bản của tôi đang thiết lập bit "kiểm dịch" trên bất kỳ tệp nào mà nó chạm vào.Làm cách nào để ngăn ứng dụng của tôi đặt bit "kiểm dịch"?
Trình soạn thảo văn bản của tôi được thiết kế để làm việc với tập lệnh shell và nếu bit kiểm dịch được đặt thì tập lệnh shell không thể được thực thi từ dòng lệnh, cho đến khi bạn nhấp đúp vào trình tìm kiếm và xem qua "Ứng dụng này đã được tải xuống từ "cảnh báo" trên Internet (hoặc xóa bit kiểm dịch bằng xattr
).
Ví dụ, tôi chỉ tạo ra một "hello world" kịch bản trong ứng dụng của tôi, nó đã được cách ly, và không thể được thực thi:
$ xattr -l foo
com.apple.quarantine: 0006;4f51dd2f;Dux;
$ chmod +x foo
$ ./foo
-bash: ./foo: Operation not permitted
Nếu tôi loại bỏ các bit kiểm dịch, kịch bản hoạt động:
$ xattr -d com.apple.quarantine foo
$ ./foo
hello world
Theo một số bài trên diễn đàn, TextEdit cũng đặt các bit kiểm dịch trên bất kỳ shell script nó tạo ra.
Tôi đang sử dụng một NSDocument
lớp đơn giản để tạo ra các file:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
{
return [self.textStorage.string dataUsingEncoding:self.stringEncoding];
}
Làm thế nào tôi có thể loại bỏ các bit kiểm dịch từ các tập tin được tạo ra trong ứng dụng của tôi? Các trình chỉnh sửa văn bản khác, chẳng hạn như TextWrangler, không đặt bit cách ly.
CẬP NHẬT
Một chút biết thêm, điều này chỉ xảy ra khi tạo ra một "ứng dụng kịch bản" tập tin, đó là bất cứ điều gì từ kịch bản perl để html.
Và nó chỉ xảy ra khi ứng dụng của tôi được sandboxed. Việc tắt hộp cát sẽ khắc phục sự cố, nhưng đó không phải là giải pháp lâu dài.
Tôi đã gửi lỗi với Radar, có vẻ như không có gì để làm nhưng chờ/hy vọng rằng đại lộ đã được khắc phục.
Bạn có chắc chắn điều này đã được sửa chưa? Tôi gặp vấn đề tương tự chính xác này trên 10.8.2 - tất cả các tệp mà ứng dụng của tôi tạo đang bị cách ly. –
@DennisRitchie nếu tôi tạo một tài liệu văn bản thuần tuý mới trong TextEdit và lưu nó vào màn hình nền dưới dạng "test.rb", tệp này không bị cách ly. Trên OS X 10.7 nó sẽ bị cách ly. Có lẽ có những tình huống khác mà điều tương tự có thể xảy ra? Tôi nghĩ bạn nên mở một câu hỏi mới tách biệt với tôi. –
cũng không được sửa cho tôi trong 10,8. kỳ lạ, thêm 'com.apple.security.files.user-selected.executable' vào các quyền lợi sửa lỗi vấn đề cho tôi – user1259710