Tôi đã tạo một container được mã hóa thông qua
#!/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
tức là một tệp, ví dụ container
được chỉ định cho tập lệnh này sẽ chứa hệ thống tệp ext3 được mã hóa thông qua cryptsetup luksFormat
.
Để gắn kết nó, tôi hiện đang sử dụng một tập lệnh khác, nói 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
)
và để ngắt kết nối nó 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
Có rất nhiều dư thừa và tự tay lấy một thiết bị lặp và trình ánh xạ cả hai đều có thể ẩn danh. Có cách nào đơn giản để làm một cái gì đó như mount -o luks ~/container /mnt/decrypted
(nhắc cho cụm mật khẩu) và umount /mnt/decrypted
cách dễ dàng thay thế?
chỉnh sửa Về cơ bản tôi hài lòng với các tập lệnh của mình ở trên (mặc dù việc kiểm tra lỗi có thể được cải thiện ...), vì vậy
Làm thế nào một tùy chọn gắn kết
-o luks=~/container
có thể được thực hiện tương tự như-o loop ~/loopfile
sử dụng các tập lệnh tôi đã viết?
Điều này có thể đạt được mà không cần viết lại mount
? Hoặc cách khác, có thể -t luks -o loop ~/container
được thực hiện?
mount