Criei um contêiner criptografado via
#!/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
ou seja, um arquivo container
especificado para este script conterá um sistema de arquivos ext3 criptografado via cryptsetup luksFormat
.
Para montá-lo, atualmente uso outro script, digamos 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
)
e desmontá-lo 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
Há muita redundância e a captura manual de um dispositivo de loop e um mapeador que podem permanecer anônimos. Existe uma maneira de simplesmente fazer algo como mount -o luks ~/container /mnt/decrypted
(solicitar a senha) e umount /mnt/decrypted
a maneira mais fácil?
editar Basicamente, estou feliz com meus scripts acima (embora a verificação de erros possa ser melhorada ...), então
Como uma opção de montagem pode
-o luks=~/container
ser implementada semelhante ao-o loop ~/loopfile
uso dos scripts que escrevi?
Isso pode ser alcançado sem reescrever mount
? Ou, alternativamente, poderia -t luks -o loop ~/container
ser implementado?
fonte
mount
Respostas:
De fato,
mount
é possível modificar , como aprendi com a existência demount.ntfs-3g
. Estou apenas tentando adivinhar, mas suspeito quemount -t sometype
resulte em uma chamada paramount.sometype $DEV $MOUNTPOINT $OPTIONS
, sinta-se à vontade para me corrigir aqui ou para citar alguma documentação real. Especialmente a opção-o loop
já está tratada, então não há mais necessidadelopsetup
...Crie um link simbólico / crie o script de montagem como
/sbin/mount.crypto_LUKS
. Remova a peça do dispositivo de loop e, em vez disso, use o-o loop
interruptor. Aqui está o meu/sbin/mount.crypto_LUKS
:Agora só tenho que executar
mount -o loop ~/container /mnt/decrypted
, emount
solicitarei a senha e, em seguida, monte o contêiner, liberando automaticamente o dispositivo de loop assim que o contêiner for fechado. Se o sistema de arquivos descriptografado falhar na montagem, o contêiner será fechado novamente, mas você poderá modificá-lo, é claro. Ou implemente alguma opção de análise em vez de passar tudo paramount
.Eu esperava que o mesmo pudesse ser alcançado via
/sbin/umount.luks
, masumount /mnt/decrypted
(mesmo com-t crypto_LUKS
) ainda apenas desmonta o habitual, deixando o contêiner aberto. Se você encontrar uma maneira deumount
chamar meudm.umount
script, informe-me ... No momento, a chamada diretaumount
é desencorajada, pois você precisará descobrir o/dev/mapper
nome manualmentecryptsetup luksClose $MAPPER
. Pelo menos o dispositivo de loop será liberado automaticamente semount -o loop
for usado antes ...fonte
umount
, acho que terei que modificar a/etc/mtab
entrada do meu, demount.luks
modo que o tipo de sistema de arquivos seja, por exemplo, emluks.ext3
vez deext3
.O pam_mount, disponível no sourceforge , é fornecido com um mount.crypto_LUKS útil e umount.crypto_LUKS que superam algumas das deficiências do script fornecidas pelo outro pôster.
fonte