Các tệp bị coi là bị hỏng trong khối lượng mã hóa


8

Tôi đang sử dụng encfs @1.7.5osxfuse @2.6.4cài đặt qua MacPorts 2.2.1 trên MacBook Pro Retina Cuối 2013 đang chạy OS X Mavericks 10.9.2. Khi mở một số tệp nhất định (ví dụ xlsx, pdf) trong encfsổ đĩa của tôi , tôi gặp lỗi "X bị hỏng và không thể mở được." cũng như một đề nghị để di chuyển nó vào thùng rác. Tuy nhiên, khi tôi sao chép tệp đó ở nơi khác (tức là không phải trên encfsổ đĩa), nó có vẻ hoạt động tốt. Tại sao lại thế này?

EDIT: Tôi đã xem trực tuyến và tìm thấy một bài đăng liên quan đến việc vô hiệu hóa GateKeeper. Nó đã lừa Về bản chất, bạn đi vào "Tùy chọn bảo mật -> Bảo mật & quyền riêng tư -> Cho phép các ứng dụng được tải xuống từ: Mọi nơi".

Tôi hiểu rằng giải pháp hoạt động, nhưng tôi muốn biết lý do tại sao nó hoạt động. Cảm ơn trước.

EDIT 2: Ngoài ra, nếu ai đó có thể gắn thẻ bài đăng của tôi encfs, nó sẽ rất được đánh giá cao.

Câu trả lời:


6

Tôi đã tìm thấy câu trả lời ở đây (cho BoxCryptor):

Trong các trường hợp đặc biệt, Mac OS X thêm thuộc tính mở rộng 'com.apple.quarantine' vào một tệp, ví dụ như được tải xuống từ internet. Điều này cũng có thể xảy ra với các tệp trong Thư mục BoxCryptor. Nếu một tệp được mã hóa có tập thuộc tính mở rộng này, bạn sẽ nhận được thông báo lỗi "bị hỏng" khi cố gắng mở tệp văn bản gốc trong Khối lượng BoxCryptor.

Cũng thử điều này, cách giải quyết an toàn hơn:

x) Mở Terminal (Ứng dụng -> Tiện ích)

y) Chạy lệnh sau (thay thế đường dẫn):

$ xattr -r -d com.apple.quarantine / path / to / encfs / mount / point


2

@apmouse là chính xác: bạn có thể sửa chữa tệp bằng xattr. Nhưng bạn phải làm điều đó nhiều lần - mỗi khi bạn lưu một tệp, nó sẽ có cờ kiểm dịch được thêm lại vào đó.

Như bạn đã chỉ ra, có một cách thay thế ít an toàn hơn nhưng thuận tiện hơn: vô hiệu hóa GateKeeper.

làm thế nào để vô hiệu hóa người gác cổng

Tôi hiểu rằng giải pháp hoạt động, nhưng tôi muốn biết lý do tại sao nó hoạt động. Cảm ơn trước.

Điều đầu tiên cần lưu ý là nếu bạn vào Keynote và chọn File → Open, bạn có thể mở tệp "bị hỏng" mà không gặp vấn đề gì. Điều này ngụ ý rằng nó thực sự là Finder đang can thiệp để ngăn mở tệp.

Thông báo lỗi "_____ bị hỏng và không thể mở được" thực sự là một lỗi chữ ký (xem tại đây - khoảng 3/4 chiều xuống), có nghĩa là GateKeeper không thể xác minh chữ ký hợp lệ. Xác minh chữ ký được cho là sẽ được áp dụng cho các tệp thực thi và tôi vẫn chưa tìm ra lý do tại sao nó lại bị lỗi trong tình huống này.

Tôi đã thử biên dịch hệ thống tệp loopback mẫu của osxfuse và đặt cùng một tệp "bị hỏng" ở đó và nó sẽ mở tốt. Vì vậy, tôi nghĩ rằng lỗi này là dành riêng cho encfs - không phải là osxfuse nói chung.

Đối với những gì nó có giá trị, có một vé mở trong dự án osxfuse cho vấn đề chính xác này. Nếu bạn gặp vấn đề này, hãy đăng thông tin của bạn lên vé đó.

Hi vọng điêu nay co ich...


Tôi nghĩ Gatekeeper chỉ ảnh hưởng đến các ứng dụng chứ không ảnh hưởng đến tài liệu. Vậy nó ảnh hưởng đến tập tin .xlsx như thế nào?
dùng151019

Tôi đoán là cờ được áp dụng cho tất cả các tài liệu đã tải xuống như trong câu trả lời của @ apmouse nhưng không được "thi hành" trên các ứng dụng không phải, nhưng với hành vi rối rắm trên khối lượng được mã hóa. Tôi cần kiểm tra hành vi này trên sshfsvà các hệ thống tập tin FUSE khác để chắc chắn.
Nicolas De Jay

2

Tôi không biết tại sao táo không xuất hiện một cách đơn giản để nói "khối lượng này an toàn", nhưng vấn đề khá dễ giải quyết đối với các bảng mã. Vui lòng tìm bên dưới tập lệnh tôi sử dụng để gắn khối lượng mã hóa; nó tự động giải quyết vấn đề thuộc tính và cũng giúp ghi nhớ đóng khối lượng. Nó có thể được mở rộng bằng cách đọc thư mục encfsđiểm gắn kếttừ dòng lệnh, nhưng tôi không thích vì lỗi chính tả có thể tạo ra rủi ro bảo mật. Nó nên tương đối dễ dàng thích ứng với các cơ chế gắn kết khác, chẳng hạn như boxcryptor. Nó làm việc cho tôi, nhưng bạn dựa vào chuyên môn của mình trong việc quyết định có nên sử dụng nó cho chính mình hay không. Rất cụ thể, tôi không phải là chuyên gia bảo mật và không đủ điều kiện để đánh giá liệu nó có mở bất kỳ lỗ hổng bảo mật nào không (đặc biệt là trong khi nó đang chạy và đặc biệt là trên các máy dùng chung).

#!/bin/bash
# script to mount encrypted volume

ENCFSDIR=<encfs dir>
MOUNTPOINT=<mount point>
SAFELOC=<somewhere outside mounted volume>

encfs $ENCFSDIR $MOUNTPOINT

cd $MOUNTPOINT
xattr -r -d com.apple.quarantine .
MY_PROMPT='SECRET: '
echo 'noscecrets to finish'
while :
do
  echo -n "$MY_PROMPT"
  read line
  if [ 'nosecrets' == "$line" ] ; then
    break
  fi
  eval "$line"
done

\# and clean up
cd $SAFELOC
umount $MOUNTPOINT

exit 0

2

Tôi nghĩ rằng tôi có một cách giải quyết bền bỉ hơn cho việc này hơn là một lệnh bạn cần chạy mỗi lần. Như tôi vừa đề cập trên báo cáo lỗi ngược dòng :

Tôi tự nghĩ, OS X sử dụng người dùng hệ thống và trình nền hệ thống cho tất cả các loại công việc, có lẽ kernel đang mong đợi có thể thực hiện một số công việc như một người dùng khác, hoặc là root, cho các tệp này và đánh dấu chúng là bị hỏng khi điều đó không hoạt động.

Vì vậy, tôi đã đánh dấu sshfsnhị phân của mình là setuidvà tôi đã thêm -o allow_othertùy chọn gắn kết vào sshfsdòng lệnh của mình và ... Tôi dường như có thể mở và chỉnh sửa tài liệu một cách đáng tin cậy trên ổ đĩa được gắn. Tôi sẽ tiếp tục thử nghiệm và theo dõi nếu nó ngừng hoạt động.

Tất nhiên tôi lo ngại về một nhị phân gốc setuid nằm xung quanh, nhưng có vẻ tốt hơn tùy chọn chạy một daemon yêu cầu quyền root ở phía máy chủ tệp để lấy NFS hoặc SMB. :)

Cho rằng đó allow_otherlà một tùy chọn gắn kết FUSE và không cụ thể sshfs, tôi tin rằng cách giải quyết này cũng sẽ hiệu quả encfs. Sẽ thật tuyệt nếu biết ai đó đã thử nó và nó đã hoạt động!


1

Cảm ơn @Glyph, từ những gì tôi có thể nói nó dường như đang hoạt động sau khi làm theo các bước của bạn. Tôi đã làm theo các bước sau:

  1. Đầu tiên tôi phải thêm một nhóm mà tôi thuộc nhóm quản trị osxfuse, nếu không thì allow_other sẽ thất bại với hoạt động không được hỗ trợ.

    sysctl -w osxfuse.tunables.admin_group=12
    
  2. Sau đó, sử dụng -o allow_other để mã hóa

Tôi chỉ thử nó một chút, nhưng trường hợp thất bại có thể tái tạo mà tôi dường như đang hoạt động.

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.