Cara termudah untuk memproteksi direktori dan isinya tanpa harus membuat file baru?

22

Saya ingin kata sandi melindungi atau mengenkripsi direktori dan semua file di dalamnya (untuk seluruh pohon direktori di bawahnya). Saya tidak ingin mengganggu seluruh direktori home, saya ingin direktori tertentu dengan beberapa file dan folder di dalamnya. Saya ingin dapat mengenkripsi direktori atau mendekripsi menggunakan kata sandi. Baris perintah akan lebih baik untuk digunakan. Saya tidak ingin harus membuat file baru sebagai versi terenkripsi dan kemudian, hapus yang sebelumnya yang merupakan versi non-terenkripsi.

Vass
sumber
Menarik, "tanpa harus membuat file baru" ...
phunehehe
Maksud Anda me-mount sebagai sistem file terenkripsi?
Faheem Mitha
@FaheemMitha, saya juga ingin menghindari rute filesystem, kedengarannya rumit.
Vass
1
@Vass Rute sistem file adalah metode paling sederhana sejauh ini. Anda akan membuat hidup Anda lebih mudah jika Anda tidak menolak solusi secara sewenang-wenang.
Gilles 'SANGAT berhenti menjadi jahat'
CATATAN: encfs tidak dianggap aman: askubuntu.com/questions/813290/encfs-insecure-what-to-use-now
Keiran Raine

Jawaban:

23

Gunakan encfs (tersedia sebagai paket di sebagian besar distribusi). Untuk mengatur:

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

Panggilan awal untuk encfsmembuat sistem file terenkripsi. Setelah itu, setiap file yang Anda tulis di bawahnya ~/encryptedtidak disimpan secara langsung di disk, itu dienkripsi dan data yang dienkripsi disimpan di bawah ~/.encrypted. The encfsdaun perintah daemon yang berjalan, dan daemon ini menangani enkripsi (dan dekripsi ketika Anda membaca file dari bawah ~/encrypted).

Dengan kata lain, untuk file di bawah ~/encrypted, tindakan seperti membaca dan menulis tidak menerjemahkan langsung ke membaca atau menulis dari disk. Mereka dilakukan oleh encfsproses, yang mengenkripsi dan mendekripsi data dan menggunakan ~/.encrypteddirektori untuk menyimpan ciphertext.

Ketika Anda selesai bekerja dengan file Anda untuk saat ini, lepaskan sistem file sehingga data tidak dapat diakses sampai Anda mengetik kembali frasa sandi Anda:

fusermount -u ~/encrypted

Setelah itu, ~/encryptedakan menjadi direktori kosong lagi.

Ketika nanti Anda ingin mengerjakan lagi file-file ini, pasang sistem file terenkripsi:

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

Ini, sekali lagi, membuat file terenkripsi ~/.encrypteddapat diakses di bawah direktori ~/encrypted.

Anda dapat mengubah titik pemasangan ~/encryptedsesuka Anda: encfs ~/.encrypted /somewhere/else(tetapi pasang direktori terenkripsi hanya sekali dalam satu waktu). Anda dapat menyalin atau memindahkan ciphertext (tetapi tidak ketika sedang dipasang) ke lokasi yang berbeda atau bahkan ke mesin yang berbeda; semua yang perlu Anda lakukan untuk bekerja pada file adalah melewati lokasi ciphertext sebagai argumen pertama ke encfsdan lokasi direktori kosong sebagai argumen kedua.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
jawabannya sangat bermanfaat dan praktis. Saya akan sangat menghargai jika Anda dapat menambahkan beberapa teks untuk menjelaskan apa yang dilakukan setiap operasi jika itu tidak mengganggu Anda. Dan bisakah Anda menjelaskan apa yang dimaksud dengan sistem file dalam konteks ini, dan relevansi pemasangan?
Vass
1
@Saya telah memperbarui jawaban saya dengan lebih banyak penjelasan. Untuk latar belakang sistem file dan pemasangan, lihat Apa titik pemasangan yang ada pada sistem Linux yang khas? dan Apa yang dimaksud dengan memasang perangkat di Linux?
Gilles 'SANGAT berhenti menjadi jahat'
Itu penjelasan yang luar biasa. Saya merasa seperti saya belajar banyak. Dan tautan tambahan membantu. Jadi sistem file yang dibuat oleh encf adalah 'blok-blok dari file asli' dan melalui encfs Anda dapat menavigasi dan membacanya; karena sistem file asli tidak kompatibel untuk menggunakan blok data ini. dan direktori terenkripsi disembunyikan untuk tidak masuk ke dalamnya secara tidak sengaja. dan jika kamu melakukannya kamu tidak akan melihat apa-apa?
Vass
1
@Vass "filesystem yang dibuat oleh encf adalah 'blok-blok dari file asli' dan melalui encfs Anda dapat menavigasi dan membacanya": ya, persis Direktori ~/.encryptedberisi ciphertext; Anda dapat mengaksesnya tanpa melalui encfs, tetapi Anda hanya akan melihat data terenkripsi di sana.
Gilles 'SANGAT berhenti menjadi jahat'
2

Saya tidak ingin harus membuat file baru sebagai versi terenkripsi dan kemudian, hapus yang sebelumnya yang merupakan versi non-terenkripsi

Tapi itulah skenario yang telah Anda jelaskan .... "dapat mengenkripsi direktori atau mendekripsi"

Saya menduga solusi yang Anda cari adalah FUSE terenkripsi atau serupa . Sistem file disimpan dalam file terenkripsi dan ketika dipasang (dengan frasa sandi) ada akses transparan melalui lapisan VFS.

symcbean
sumber
membuat file baru dan menghapus sebelumnya adalah rute .zip dengan perlindungan kata sandi. Saya tidak mengerti sistem file dan rute pemasangan yang Anda rujuk. Apakah tidak ada program yang mengaduk-aduk file dengan cara tertentu dan kemudian dapat mengaturnya kembali?
Vass
ya, di sini daftar seluruh sistem file terenkripsi FUSE. Jalur zip adalah yang paling sederhana
bsd
@ Vass Saya tidak mengerti apa yang Anda maksud dengan "jalur zip": tidak ada zip yang terlibat. Plaintext tidak pernah disimpan di disk (itu akan jauh lebih rumit dan mengalahkan sebagian besar tujuan enkripsi).
Gilles 'SANGAT berhenti menjadi jahat'
2
Rute zip / jalur zip adalah melakukan zip direktori secara rekursif dengan opsi enkripsi / kata sandi. Namun, ketika seseorang ingin mengakses file, seseorang harus mengekstrak file yang tidak dienkripsi dari zip, membaca file dan kemudian menghapus, atau mengedit file dan kemudian memperbarui zip dengan file baru, kemudian hapus file perantara. Dia mencari transparansi sistem file terenkripsi tetapi pada tingkat direktori. Saya, dan yang lainnya menyarankan FUSE dengan fs terenkripsi. "Sederhana" adalah masalah perspektif dan pengalaman.
bsd
@ mengikat, ya, Anda mengartikulasikannya dengan benar. Saya tidak mengerti sistem file dan operasinya. Saya akan bekerja secara membabi buta dengan perintah-perintah tanpa memahami konsep.
Vass