Upstart скрипт для запуска шифрования eCryptfs
Я использую eCryptfs для монтирования и шифрования определенного каталога с помощью:
mount -t ecryptfs /secure /secure -o ecryptfs_unlink_sigs,ecryptfs_key_bytes=16,ecryptfs_cipher=aes
Я видел примеры, которые используют fstab для автоматического монтирования с помощью ecryptfs во время загрузки.
Мне интересно, возможно ли / целесообразно сделать это как сценарий выскочки, чтобы он мог быть выполнен по мере необходимости и для целей тестирования?
В идеале он должен выполняться до других сценариев Upstart, которые зависят от шифруемого каталога.
1 ответ
Решение
Пожалуйста, проверьте следующий скрипт, найденный в Gist 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] -
Измените скрипт по мере необходимости.