Cách đơn giản nhất để mật khẩu bảo vệ một thư mục và nội dung của nó mà không phải tạo các tệp mới?


22

Tôi muốn mật khẩu bảo vệ hoặc mã hóa một thư mục và tất cả các tệp trong đó (cho toàn bộ cây thư mục bên dưới nó). Tôi không muốn làm phiền toàn bộ thư mục nhà, tôi muốn có một thư mục cụ thể với một số tệp và thư mục trong đó. Tôi muốn có thể mã hóa thư mục hoặc giải mã nó bằng mật khẩu. Dòng lệnh sẽ là tốt nhất để sử dụng. Tôi không muốn phải tạo một tệp mới dưới dạng phiên bản được mã hóa và sau đó, xóa các tệp trước đó là phiên bản không được mã hóa.


Thật thú vị, "không cần phải tạo tệp mới" ...
phunehehe

Bạn có nghĩa là gắn kết như là một hệ thống tập tin được mã hóa?
Faheem Mitha

@FaheemMitha, tôi cũng muốn tránh lộ trình hệ thống tập tin, nghe có vẻ phức tạp.
Vass

1
@Vass Tuyến hệ thống tập tin là phương pháp đơn giản nhất cho đến nay. Bạn sẽ làm cho cuộc sống của bạn dễ dàng hơn nếu bạn không từ chối các giải pháp một cách tùy tiện.
Gilles 'SO- ngừng trở nên xấu xa'

LƯU Ý: encfs
Keiran Raine

Câu trả lời:


23

Sử dụng encfs (có sẵn dưới dạng gói trên hầu hết các bản phân phối). Để thiết lập:

mkdir ~/.encrypted ~/encrypted
encfs ~/.encrypted ~/encrypted
# enter a passphrase
mv existing-directory ~/encrypted

Cuộc gọi ban đầu để encfsthiết lập một hệ thống tập tin được mã hóa. Sau thời điểm đó, mọi tệp bạn viết~/encrypted đây không được lưu trữ trực tiếp trên đĩa, nó được mã hóa và dữ liệu được mã hóa được lưu trữ bên dưới ~/.encrypted. Các encfslá lệnh một daemon chạy, và daemon này xử lý mã hóa (và giải mã khi bạn đọc một tập tin từ dưới ~/encrypted).

Nói cách khác, cho các tập tin dưới ~/encrypted , các hành động như đọc và ghi không dịch trực tiếp sang đọc hoặc ghi từ đĩa. Chúng được thực hiện theo encfsquy trình, mã hóa và giải mã dữ liệu và sử dụng ~/.encryptedthư mục để lưu trữ bản mã.

Khi bạn đã hoàn thành công việc với các tệp của mình trong thời gian này, hãy ngắt kết nối hệ thống tệp để dữ liệu không thể được truy cập cho đến khi bạn nhập lại cụm mật khẩu của mình:

fusermount -u ~/encrypted

Sau thời điểm đó, ~/encryptedsẽ lại là một thư mục trống.

Khi bạn muốn làm việc lại với các tệp này, hãy gắn hệ thống tệp được mã hóa:

encfs ~/.encrypted ~/encrypted
# enter your passphrase

Điều này, một lần nữa, làm cho các tệp được mã hóa ~/.encryptedcó thể truy cập trong thư mục ~/encrypted.

Bạn có thể thay đổi điểm gắn kết ~/encryptednhư bạn muốn: encfs ~/.encrypted /somewhere/else(nhưng chỉ gắn thư mục được mã hóa một lần). Bạn có thể sao chép hoặc di chuyển bản mã (nhưng không được gắn vào) đến một vị trí khác hoặc thậm chí đến một máy khác; tất cả những gì bạn cần làm để làm việc trên các tệp là chuyển vị trí của bản mã làm đối số đầu tiên encfsvà vị trí của thư mục trống làm đối số thứ hai.


Câu trả lời là rất hữu ích và thiết thực. Tôi sẽ đánh giá rất cao nếu bạn có thể thêm một số văn bản để giải thích mỗi thao tác đang làm gì nếu điều đó không làm phiền bạn. Và bạn có thể giải thích ý nghĩa của một hệ thống tập tin trong ngữ cảnh này và sự liên quan của việc gắn kết không?
Vass

1
@Vass Tôi đã cập nhật câu trả lời của mình với nhiều lời giải thích hơn. Để biết thông tin cơ bản về hệ thống tập tin và việc gắn kết, hãy xem Điểm gắn kết nào tồn tại trên hệ thống Linux điển hình? có nghĩa là gì khi gắn một thiết bị trong Linux?
Gilles 'SO- ngừng trở nên xấu xa'

Đó là một lời giải thích tuyệt vời. Tôi cảm thấy như tôi đã học được rất nhiều. Và các liên kết thêm giúp đỡ. Vì vậy, hệ thống tệp được tạo bởi các bảng mã là 'xáo trộn các khối của tệp gốc' và thông qua các bảng mã, bạn có thể điều hướng và đọc nó; bởi vì hệ thống tập tin gốc không tương thích để sử dụng các khối dữ liệu này. và thư mục được mã hóa được ẩn để không vô tình xâm nhập vào nó. và nếu bạn đã làm gì bạn sẽ thấy gì?
Vass

1
@Vassvà hệ thống tập tin được tạo bởi encfs là 'xáo trộn các khối của tập tin gốc' và thông qua các bảng mã, bạn có thể điều hướng và đọc nó. Thư mục ~/.encryptedchứa bản mã; bạn có thể truy cập nó mà không cần thông qua encfs, nhưng bạn sẽ chỉ thấy dữ liệu được mã hóa ở đó.
Gilles 'SO- ngừng trở nên xấu xa'

2

Tôi không muốn phải tạo một tệp mới dưới dạng phiên bản được mã hóa và sau đó, xóa các tệp trước đó là phiên bản không được mã hóa

Nhưng đó chính xác là kịch bản bạn đã mô tả .... "có thể mã hóa thư mục hoặc giải mã nó"

Tôi nghi ngờ giải pháp bạn đang tìm kiếm là một FUSE được mã hóa hoặc tương tự . Hệ thống tệp được lưu trữ trong một tệp được mã hóa và khi được gắn (với cụm mật khẩu) có quyền truy cập trong suốt thông qua lớp VFS.


tạo một tệp mới và xóa trước đó là một tuyến .zip có bảo vệ bằng mật khẩu. Tôi không hiểu hệ thống tập tin và lộ trình gắn kết mà bạn tham khảo. Không có chương trình nào đó xáo trộn tập tin theo một cách nào đó và sau đó có thể đưa nó trở lại trật tự?
Vass

vâng, đây là toàn bộ danh sách các hệ thống tập tin được mã hóa FUSE. Đường dẫn zip đơn giản nhất
bsd

@Vass Tôi không hiểu ý của bạn khi nói về đường dẫn zip. Không có zip liên quan. Bản rõ không bao giờ được lưu trữ trên đĩa (điều đó sẽ phức tạp hơn rất nhiều và đánh bại hầu hết mục đích của mã hóa).
Gilles 'SO- ngừng trở nên xấu xa'

2
Đường dẫn zip / đường dẫn zip là để đệ quy zip một thư mục với (các) tùy chọn mã hóa / mật khẩu. Tuy nhiên, khi muốn truy cập một tệp, người ta phải trích xuất tệp không được mã hóa từ zip, đọc tệp rồi xóa hoặc chỉnh sửa tệp và sau đó cập nhật zip với tệp mới, sau đó xóa tệp trung gian. Anh ta đang tìm kiếm sự minh bạch của một hệ thống tập tin được mã hóa nhưng ở cấp độ thư mục. Tôi và những người khác đề xuất FUSE với một fs được mã hóa. "Đơn giản" mặc dù, là một vấn đề về quan điểm và kinh nghiệm.
bsd

@bdowning, vâng, bạn đã nói rõ nó. Tôi không hiểu hệ thống tập tin và hoạt động của họ. Tôi sẽ làm việc mù quáng với các lệnh mà không hiểu các khái niệm.
Vass
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.