`mount`로 cryptsetup 컨테이너를 마운트하는 방법은 무엇입니까?


9

통해 암호화 된 컨테이너를 만들었습니다

#!/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으로 구현할 수 있습니까?


cryptmount 를 사용해 보셨습니까 ?
jw013

@ jw013 나는하지 않았고 조금 단순화했을 수도 있지만 기본적으로 직접 지원하지는 않습니다.mount
Tobias Kienzler

답변:


6

실제로, mount의 존재로부터 배운대로 수정 이 가능합니다 mount.ntfs-3g. 나는 추측 만하고 있지만 mount -t sometype에 대한 결과가 의심 mount.sometype $DEV $MOUNTPOINT $OPTIONS스럽습니다. 여기를 수정하거나 실제 문서를 인용하십시오. 특히 옵션 -o loop은 이미 처리되었으므로 lopsetup더 이상 필요가 없습니다 ...

다음과 같이 마운트 스크립트를 Symlink / 작성하십시오 /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컨테이너가 종료되면 자동으로 loopdevice을 발표, 컨테이너를 암호 나 메시지를 표시하고 마운트합니다. 해독 된 파일 시스템이 마운트에 실패하면 컨테이너가 다시 닫히지 만 물론 수정할 수 있습니다. 또는에 모든 것을 전달하는 대신 옵션 파싱을 구현하십시오 mount.

나는을 통해 동일한 결과를 얻을 수 있기를 바랐 /sbin/umount.luks지만 umount /mnt/decrypted(조차도 -t crypto_LUKS) 여전히 일반적인 마운트 해제 만 수행하고 컨테이너를 열어 둡니다. 대신 umountdm.umount스크립트를 호출 하는 방법을 찾으면 알려주십시오. 현재 이름을 수동으로 계산 umount해야하기 때문에 직접 호출하는 것은 권장되지 않습니다 . 적어도 루프 장치는 전에 사용 된 경우 자동으로 해제됩니다 .../dev/mappercryptsetup luksClose $MAPPERmount -o loop


에 관해서는 파일 시스템 유형이 대신 이되도록 내 항목umount수정/etc/mtabmount.luks 해야한다고 생각 합니다. luks.ext3ext3
Tobias Kienzler

3

sourceforge 에서 사용 가능한 pam_mount는 다른 포스터에서 제공 한 스크립트의 단점을 극복하는 유용한 mount.crypto_LUKS 및 umount.crypto_LUKS와 함께 제공됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.