0

eCryptfs を使用して、次の方法で特定のディレクトリをマウントおよび暗号化しています。

mount -t ecryptfs /secure /secure -o ecryptfs_unlink_sigs,ecryptfs_key_bytes=16,ecryptfs_cipher=aes

fstab を使用して、起動時に ecryptfs を使用して自動的にマウントする例を見てきました。

必要に応じてテスト目的で実行できるように、これを新興スクリプトとして実行することが可能/賢明かどうか疑問に思っていますか?

理想的には、暗号化されているディレクトリに依存する他の Upstart スクリプトの前に実行することです。

4

1 に答える 1

0

ruxkor の要点(オリジナルスーパーユーザー)にある次のスクリプトを確認してください。

#!/bin/bash

# ecryptFS mount script
# taken and slightly modified version
# original at https://superuser.com/questions/227713/ecryptfs-how-to-mount-a-backup-of-an-encrypted-home-dir

# ROOT should be the parent of the .ecryptfs and .Private folders
if [ ! -d "$1" -o "$2" == "" ]; then
    echo "usage: $0 /home/.ecryptfs/USER /mnt/USER"
    exit 1
fi

ROOT=$1
TARGET=$2

sudo mkdir -p $TARGET
cd $ROOT

echo Type your password:
PASS=$(ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase | sed s/Passphrase:\ //)
SIG1=$(head -n1 .ecryptfs/Private.sig)
SIG2=$(tail -n1 .ecryptfs/Private.sig)

echo Passphrase:
echo $PASS
echo Signatures:
echo $SIG1
echo $SIG2

echo Should be empty:
sudo keyctl clear @u
sudo keyctl list @u

echo Do not type anything:
echo $PASS | sudo ecryptfs-add-passphrase --fnek

echo Sould have signatures:
sudo keyctl list @u

echo Mounting $ROOT on $TARGET...
sudo mount -t ecryptfs -o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes,ecryptfs_sig=$SIG1,ecryptfs_fnek_sig=$SIG2,passwd=$(echo $PASS) .Private $TARGET

ls $TARGET

このスクリプトを拡張して、パラメータ化されたパスフレーズを使用できます。たとえば、次のようになります。

ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase PASS

また:

printf "%s" "wrapping passphrase" | ecryptfs-unwrap-passphrase [file] -

必要に応じてスクリプトを変更します。

于 2014-10-08T20:33:44.770 に答える