数年前にこの回答を書いたとき、これがソリューションを実装する最良の方法でした。代わりにmount.ecryptfs_privateを使用して次の答えを確認することをお勧めします。
また、2番目のeCryptfsボリュームを自動的にマウントする方法も探していました。次のスクリプトと設定変更のコレクションは、GUIまたはCLIのいずれかにログイン時にボリュームを安全かつ自動的にマウントします。
作成中のより良い解決策があります(ただし、このスクリプトの有効期間は限られているため、ユーザーログイン時に自動マウントする準備ができていないと思います)。
小さすぎるハードドライブのecryptfs-暗号化にリンクを追加する方法は?
スクリプトのセキュリティは、eCryptfsで暗号化されているホームディレクトリに依存しているため、パスフレーズを展開するためのパスワードを持つスクリプトとファイルは暗号化されます。ログイン後にルートシェルを開いた状態でコンピューターをロック解除したままにしておくと、パスワードにアクセスできますが、sudo NOPASSWDを使用すると、パスワードを入力したり、ユーザーが読み取れるファイルにパスフレーズを残したりせずにパーティションを安全にマウントできます。
これらのスクリプトの既知の欠点の1つは、2番目のボリュームがログアウト時にアンマウントされないことです。そのため、マルチユーザーシステムには特に適していません。
私のソリューションは、実際のマウントを実行するシェルスクリプトと、ラッパーとして機能するシェルスクリプトの2つのシェルスクリプトで実装されています。
これは、ディレクトリが既にマウントされているかどうかを検証するラッパースクリプトです。マウントされていない場合は、sudoを使用してマウントスクリプトを呼び出します。
/ home / johnf / scripts / automount_ecryptfs
#!/bin/bash
MOUNT_POINT=/home/johnf/slow
grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
sudo /home/johnf/scripts/mount_other_ecryptfs
fi
このスクリプトは、次の/ home / johnf / scripts / mount_other_ecryptfsを呼び出します。
このスクリプトは、ファイル名の暗号化が有効になっていることを前提としていることに注意してください。スクリプトを変更して検出を処理する必要がある場合(ecryptfs-recover-privateを参照)、またはecryptfs_fnek_sigマウントオプションを削除する必要があります。
以下は/ home / johnf / scripts / mount_other_ecryptfsスクリプトです。
#!/bin/bash
ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}
また、パスワードを含むファイルを作成する必要があります。このファイルは、eCryptfsマウントコマンドで使用されます。
/ home / johnf / scripts / ecryptfs_passphrase:
passwd=secret_passphrase
いくつかのファイルのアクセス許可を変更する必要があります。
chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase
スクリプトを作成する前に、sudoパスワードを入力せずにsudoを使用してマウントスクリプトを実行できるように、sudoers構成を作成する必要があります。
以下を/ etc / sudoers(または/etc/sudoers.dのファイル)に追加します。johnfをユーザー名に置き換えます。マウントスクリプトへの絶対パスを使用する必要があります。
johnf ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs
最後のステップは、ログイン時にautomount_ecryptfsスクリプトを呼び出すことです。
Ubuntu Unity(およびおそらくgnome)では、スタートアップアプリケーションアプレットを使用して、/ home / johnf / scripts / automount_ecryptfsを呼び出す新しいスタートアッププログラムを作成します。
ログイン時に2番目のeCryptfsボリュームをbashシェルに自動的にマウントするには、〜/ .bashrcファイルを変更します。以下を追加します。
/home/johnf/scripts/automount_ecryptfs
この設定が完了したら、2番目のeCryptfsボリュームを自動的にマウントする必要があります。