web-dev-qa-db-ja.com

新しいファイルを作成せずにディレクトリとその内容をパスワードで保護する最も簡単な方法は?

ディレクトリとその中のすべてのファイルをパスワードで保護または暗号化したい(その下のディレクトリツリー全体に対して)。ホームディレクトリ全体を煩わせたくありません。ファイルやフォルダが含まれている特定のディレクトリが必要です。ディレクトリを暗号化したり、パスワードを使用して復号化したりできます。コマンドラインを使うのが一番いいでしょう。暗号化されたバージョンとして新しいファイルを作成してから、暗号化されていないバージョンである以前のファイルを削除する必要はありません。

22
Vass

encfs を使用します(ほとんどのディストリビューションでパッケージとして使用できます)。設定する:

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

encfsへの最初の呼び出しは、暗号化されたファイルシステムをセットアップします。その後、~/encryptedの下に書き込むすべてのファイルはディスクに直接保存されず、暗号化され、暗号化されたデータは~/.encryptedの下に保存されます。 encfsコマンドはデーモンを実行したままにし、このデーモンが暗号化(および~/encryptedからファイルを読み取るときの復号化)を処理します。

つまり、~/encryptedの下のファイルの場合、読み取りや書き込みなどのアクションは、ディスクからの読み取りまたは書き込みに直接変換されません。これらはencfsプロセスによって実行され、データを暗号化および復号化し、~/.encryptedディレクトリを使用して暗号文を格納します。

とりあえずファイルの操作が終了したら、ファイルシステムをアンマウントして、パスフレーズをもう一度入力するまでデータにアクセスできないようにします。

fusermount -u ~/encrypted

その後、~/encryptedは再び空のディレクトリになります。

後でこれらのファイルで再び作業する場合は、暗号化されたファイルシステムをマウントします。

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

これにより、~/.encrypted内の暗号化ファイルがディレクトリ~/encryptedの下でアクセス可能になります。

マウントポイント~/encryptedは好きなように変更できます:encfs ~/.encrypted /somewhere/else(ただし、暗号化されたディレクトリは一度に1回だけマウントします)。暗号文を(マウントされている間ではなく)別の場所または別のマシンにコピーまたは移動できます。ファイルを操作するために必要なのは、暗号文の場所を最初の引数としてencfsに渡し、空のディレクトリの場所を2番目の引数として渡すことだけです。

暗号化されたバージョンとして新しいファイルを作成してから、暗号化されていないバージョンである以前のファイルを削除したくない

しかし、それはまさにあなたが説明したシナリオです...「ディレクトリを暗号化または復号化できる」

あなたが探している解決策は暗号化されたFuseまたは similar だと思います。ファイルシステムは暗号化されたファイルに保存され、(パスフレーズを使用して)マウントすると、VFSレイヤーを介して透過的にアクセスできます。

2
symcbean