Za pomocą stworzyłem zaszyfrowany kontener
#!/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
tzn. plik container
określony np. dla tego skryptu będzie zawierał system plików ext3 zaszyfrowany przez cryptsetup luksFormat
.
Aby go zamontować, używam obecnie innego skryptu, powiedz 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
)
i odmontować 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
Istnieje wiele nadmiarowości i ręczne pobieranie urządzenia pętli i programu mapującego, które mogą pozostać anonimowe. Czy istnieje sposób, aby po prostu zrobić coś takiego mount -o luks ~/container /mnt/decrypted
(monitowanie o hasło) i umount /mnt/decrypted
prosty sposób?
edytuj Zasadniczo jestem zadowolony z powyższych skryptów (chociaż sprawdzanie błędów można poprawić ...), więc
W jaki sposób można
-o luks=~/container
wdrożyć opcję montowania podobnie do-o loop ~/loopfile
skryptów, które napisałem?
Czy można to osiągnąć bez przepisywania mount
? Lub alternatywnie, może -t luks -o loop ~/container
być wdrożony?
źródło
mount
Odpowiedzi:
W rzeczywistości modyfikacja
mount
jest możliwa, jak dowiedziałem się z istnieniamount.ntfs-3g
. Zgaduję tylko, ale podejrzewam,mount -t sometype
że zadzwonił do mniemount.sometype $DEV $MOUNTPOINT $OPTIONS
, możesz mnie tutaj poprawić lub podać prawdziwą dokumentację. Zwłaszcza ta opcja-o loop
jest już traktowana, więc nie trzebalopsetup
już ...Symlink / utwórz skrypt montowania jako
/sbin/mount.crypto_LUKS
. Usuń część urządzenia pętli i zamiast tego po prostu użyj-o loop
przełącznika. Oto moje/sbin/mount.crypto_LUKS
:Teraz muszę tylko uruchomić
mount -o loop ~/container /mnt/decrypted
imount
poprosi mnie o hasło, a następnie zamontuje kontener, automatycznie zwalniając urządzenie pętli po zamknięciu kontenera. Jeśli odszyfrowany system plików nie powiedzie się, kontener zostanie ponownie zamknięty, ale można to oczywiście zmienić. Lub zaimplementuj parsowanie opcji zamiast przekazywania wszystkiego domount
.Miałem nadzieję, że to samo można osiągnąć poprzez
/sbin/umount.luks
, aleumount /mnt/decrypted
(nawet przy-t crypto_LUKS
) nadal tylko odmontowuje się, pozostawiając pojemnik otwarty. Jeśli zamiast tego znajdziesz sposób naumount
wywołanie mojegodm.umount
skryptu, daj mi znać ... W tej chwili bezpośrednie dzwonienieumount
jest odradzane, ponieważ musisz/dev/mapper
ręcznie wymyślić nazwęcryptsetup luksClose $MAPPER
. Przynajmniej urządzenie pętli zostanie zwolnione automatycznie, jeślimount -o loop
było używane przed ...źródło
umount
, myślę, że będę musiał zmodyfikować/etc/mtab
wpis mojego,mount.luks
tak aby typ systemu plików był np.luks.ext3
Zamiastext3
.pam_mount, dostępny z sourceforge , jest dostarczany z pomocnym mount.crypto_LUKS i umount.crypto_LUKS, które eliminują niektóre wady skryptu dostarczone przez inny plakat.
źródło