以下で暗号化されたコンテナを作成しました。
#!/bin/bash
dd if=/dev/zero of=$1 bs=1 count=0 seek=$2
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksFormat $LOOPDEV
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER)
mkfs.ext3 $MAPPER
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
つまり、たとえば、このスクリプトに割り当てられたファイルには、container
暗号化されたext3ファイルシステムが含まれますcryptsetup luksFormat
。
それをインストールするには、現在次のような他のスクリプトを使用してくださいdm.mount container /mnt/decrypted
。
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER) || losetup -d $LOOPDEV
mount $MAPPER $2 || (
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
)
それを削除してくださいdm.umount /mnt/decrypted
:
#!/bin/bash
set -e
MAPPER=$(basename $(mount | grep $1 | gawk ' { print $1 } '))
LOOPDEV=$(cryptsetup status $MAPPER | grep device | gawk ' { print $2 } ')
umount $1
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
冗長性が高く、ループデバイスとマッパーを手動で検索する必要があり、どちらも匿名のままにすることができます。mount -o luks ~/container /mnt/decrypted
(パスワード入力プロンプト)やumount /mnt/decrypted
簡単な方法などの操作を行う方法はありますか?
編集する基本的に私は上記のスクリプトに満足しています(エラーチェックを改善することはできますが...)。
私が書いたスクリプトを使うのと同じマウントオプションをどのように実装しますか
-o luks=~/container
?-o loop ~/loopfile
書き直さなくても実装できますかmount
?それとも実装は可能ですか-t luks -o loop ~/container
?
答え1
実際にmount
学んだ通りに修正が可能です。しかし、これが電話をかけるmount.ntfs-3g
疑問です。ここで修正するか、実際の文書を引用してください。特に、このオプションは処理されたため、もはや必要ありません。mount -t sometype
mount.sometype $DEV $MOUNTPOINT $OPTIONS
-o loop
lopsetup
/sbin/mount.crypto_LUKS
ループユニット部分を取り外し、スイッチのみを使用してください-o loop
。これは私のものです/sbin/mount.crypto_LUKS
:
#!/bin/bash
set -e
if [[ $(mount | grep ${2%%/} | wc -l) -gt 0 ]]; then
echo "Path $2 is already mounted!" >&2
exit 9
else
MAPPER=$(mktemp -up /dev/mapper)
cryptsetup luksOpen $1 $(basename $MAPPER)
shift
mount $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
fi
実行するmount -o loop ~/container /mnt/decrypted
と、mount
パスワードを入力するように求められ、コンテナがマウントされ、コンテナが閉じられるとループデバイスが自動的に解放されます。復号化されたファイルシステムをマウントできない場合、コンテナは再びシャットダウンされますが、もちろん変更できます。またはすべてをmount
。
私はこれを実行して同じ効果を得ることができることを望みまし/sbin/umount.luks
たがumount /mnt/decrypted
、(を使用しても-t crypto_LUKS
)まだ一般的なマウント解除を実行し、コンテナを開いたままにします。umount
私のスクリプトを呼び出す方法を見つけたらdm.umount
教えてください...現在の名前を手動で調べる必要がumount
あるため、直接呼び出しはお勧めできません。少なくともループメカニズムが以前に使用されたことがある場合は、自動的に解放されます。/dev/mapper
cryptsetup luksClose $MAPPER
mount -o loop
答え2
pam_mount,ソースフォージで利用可能他の出版社が提供するスクリプトのいくつかの欠点を克服する便利なmount.crypto_LUKSとumount.crypto_LUKSが付属しています。