Я создал зашифрованный контейнер через
#!/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
быть реализовано?
источник
mount
Ответы:
На самом деле, изменение
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
:Теперь мне нужно просто запустить
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
использовалось раньше ...источник
umount
, я думаю, мне придется изменить/etc/mtab
запись моего такmount.luks
, чтобы тип файловой системы, например,luks.ext3
вместоext3
.pam_mount, доступный от sourceforge , поставляется с полезными mount.crypto_LUKS и umount.crypto_LUKS, которые преодолевают некоторые недостатки скрипта, предоставленные другим автором.
источник