J'ai créé un conteneur crypté 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
c'est-à-dire qu'un fichier container
spécifié par exemple dans ce script contiendra un système de fichiers ext3 chiffré via cryptsetup luksFormat
.
Pour le monter, j'utilise actuellement un autre script, disons 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
)
et pour le démonter 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
Il y a beaucoup de redondance et de saisie manuelle d'un périphérique de boucle et d'un mappeur, qui pourraient tous deux rester anonymes. Existe-t-il un moyen de simplement faire quelque chose comme mount -o luks ~/container /mnt/decrypted
(demander la phrase secrète) et umount /mnt/decrypted
la manière simple à la place?
modifier Fondamentalement, je suis satisfait de mes scripts ci-dessus (bien que la vérification des erreurs puisse être améliorée ...), donc
Comment une option de montage peut-elle
-o luks=~/container
être implémentée de manière similaire à l'-o loop ~/loopfile
utilisation des scripts que j'ai écrits?
Peut-on y parvenir sans réécrire mount
? Ou bien, pourrait-il -t luks -o loop ~/container
être mis en œuvre?
la source
mount
Réponses:
En fait, la modification
mount
est possible, comme je l'ai appris de l'existence demount.ntfs-3g
. Je ne fais que des conjectures, mais je soupçonne desmount -t sometype
résultats dans un appel àmount.sometype $DEV $MOUNTPOINT $OPTIONS
, n'hésitez pas à me corriger ici ou à citer une documentation réelle. Surtout l'option-o loop
est déjà traitée donc il n'y en a plus besoinlopsetup
...Lien symbolique / créer le script de montage en tant que
/sbin/mount.crypto_LUKS
. Retirez la partie loopdevice et utilisez simplement le-o loop
commutateur. Voici mon/sbin/mount.crypto_LUKS
:Il ne me reste plus qu'à exécuter
mount -o loop ~/container /mnt/decrypted
, etmount
je vais me demander le mot de passe, puis monter le conteneur, libérant automatiquement le loopdevice une fois le conteneur fermé. Si le système de fichiers déchiffré ne parvient pas à se monter, le conteneur sera à nouveau fermé, mais vous pouvez bien sûr le modifier. Ou implémentez une analyse d'options au lieu de tout transmettremount
.J'espérais que la même chose pourrait être obtenue via
/sbin/umount.luks
, maisumount /mnt/decrypted
(même avec-t crypto_LUKS
) ne fait que le démontage habituel, laissant le conteneur ouvert. Si vous trouvez un moyen d'umount
appeler mondm.umount
script à la place, faites-le moi savoir ... Pour le moment, appeler directementumount
est déconseillé car vous devrez trouver le/dev/mapper
nom manuellementcryptsetup luksClose $MAPPER
. Au moins, le périphérique de boucle sera libéré automatiquement s'il amount -o loop
été utilisé auparavant ...la source
umount
, je suppose que je vais devoir modifier l'/etc/mtab
entrée de mon demount.luks
telle sorte que le type de système de fichiers soit par exempleluks.ext3
au lieu deext3
.pam_mount, disponible auprès de sourceforge , est livré avec un utile mount.crypto_LUKS et umount.crypto_LUKS qui surmontent certaines des lacunes du script fournies par l'autre affiche.
la source