다음을 통해 암호화된 컨테이너를 만들었습니다.
#!/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
?
답변1
실제로 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
:
#!/bin/bash
set -e
if [[ $(mount | grep ${2%%/} | wc -l) -gt 0 ]]; then
echo "Path $2 is already mounted!" >&2
exit 9
else
MAPPER=$(mktemp -up /dev/mapper)
cryptsetup luksOpen $1 $(basename $MAPPER)
shift
mount $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
fi
이제 실행 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
답변2
pam_mount,소스포지에서 사용 가능에는 다른 게시자가 제공하는 스크립트의 일부 단점을 극복하는 유용한 mount.crypto_LUKS 및 umount.crypto_LUKS가 함께 제공됩니다.