Ich habe einen verschlüsselten Container über erstellt
#!/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
Das heißt, eine Datei, die z. B. container
in diesem Skript angegeben ist, enthält ein ext3-Dateisystem, das über verschlüsselt ist cryptsetup luksFormat
.
Zum Mounten verwende ich derzeit ein anderes Skript, z. B 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
)
und um es abzunehmen 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
Es gibt viel Redundanz und das manuelle Abrufen eines Loop-Geräts und eines Mappers, die beide anonym bleiben könnten. Gibt es eine Möglichkeit, einfach so etwas zu tun mount -o luks ~/container /mnt/decrypted
(Aufforderung zur Eingabe der Passphrase) und umount /mnt/decrypted
stattdessen die einfache Möglichkeit?
edit Grundsätzlich bin ich mit meinen Skripten oben zufrieden (obwohl die Fehlerprüfung verbessert werden könnte ...), also
Wie kann eine Mount-Option
-o luks=~/container
ähnlich wie-o loop ~/loopfile
bei den von mir geschriebenen Skripten implementiert werden ?
Kann dies ohne Umschreiben erreicht werden mount
? Oder könnte alternativ -t luks -o loop ~/container
implementiert werden?
quelle
mount
Antworten:
In der Tat ist eine Änderung
mount
möglich, wie ich aus der Existenz von gelernt habemount.ntfs-3g
. Ich mache nur Vermutungen, aber ich vermute,mount -t sometype
dass dies zu einem Anruf beimount.sometype $DEV $MOUNTPOINT $OPTIONS
führt. Sie können mich hier gerne korrigieren oder eine aktuelle Dokumentation zitieren. Insbesondere die Option-o loop
ist bereits behandelt, sodass keine Notwendigkeitlopsetup
mehr besteht ...Symlink / Erstellen Sie das Mount-Skript als
/sbin/mount.crypto_LUKS
. Entfernen Sie den Loopdevice-Teil und verwenden Sie stattdessen einfach den-o loop
Schalter. Hier ist mein/sbin/mount.crypto_LUKS
:Jetzt muss ich nur noch ausführen
mount -o loop ~/container /mnt/decrypted
undmount
werde mich zur Eingabe des Kennworts auffordern und dann den Container bereitstellen. Das Loop-Gerät wird automatisch freigegeben, sobald der Container geschlossen wird. Wenn das entschlüsselte Dateisystem nicht bereitgestellt werden kann, wird der Container wieder geschlossen, aber Sie können dies natürlich ändern. Oder implementieren Sie eine Optionsanalyse, anstatt alles an weiterzugebenmount
.Ich hatte gehofft, dass das Gleiche über erreicht werden könnte
/sbin/umount.luks
, aberumount /mnt/decrypted
(auch mit-t crypto_LUKS
) immer noch nur das übliche Abhängen, wobei der Container offen bleibt. Wenn Sie stattdessen eine Möglichkeit finden,umount
meindm.umount
Skript aufzurufen , lassen Sie es mich bitte wissen ... Im Momentumount
wird davon abgeraten , direkt anzurufen , da Sie den/dev/mapper
Namen manuell herausfinden müssencryptsetup luksClose $MAPPER
. Zumindest das Loop-Gerät wird automatisch freigegeben, wennmount -o loop
es zuvor verwendet wurde ...quelle
umount
muss ich wohl den/etc/mtab
Eintrag von mymount.luks
so ändern, dass der Dateisystemtyp zBluks.ext3
statt istext3
.pam_mount, erhältlich von sourceforge , wird mit einer hilfreichen Datei mount.crypto_LUKS und umount.crypto_LUKS geliefert, die einige der Mängel des Skripts des anderen Posters beheben.
quelle