암호화된 디스크의 아이콘을 클릭하고 비밀번호를 입력하면 nautilus
루트 비밀번호 없이 기본 블록 장치가 매핑되어 마운트됩니다. sudo를 피하고 GUI에서 마운트 지점을 다시 마운트 해제할 수 있도록 하는 등 GUI 없이 명령줄에서 이 프로세스를 호출할 수 있는 방법이 있습니까?caja
/dev/mapper/luks-$UUID
/media/$USER/$DISK
답변1
나는 이 작업을 수행하는 단일 명령 방법을 모릅니다. GUI 프로그램은 "올바른" 접근 방식을 취하기 위해 디스크에 대해 많은 조사를 수행하며, 이 중 일부는 사용자가 직접 수행해야 합니다. 하지만 sudo가 필요하지 않으며 결과적인 이벤트 시퀀스는 비교적 고통스럽지 않다고 생각합니다.
짧은 답변
udisksctl
패키지에서 사용 udisks2
:
udisksctl unlock -b /path/to/disk/partition
udisksctl mount -b /path/to/unlocked/device
위 기능이 작동하려면 사용자 계정이 적절하게 승인되어야 합니다. Debian 및 Ubuntu에서 이는 plugdev
그룹 에 계정을 추가하는 것을 의미합니다 .
디스크 작업을 완료한 경우:
udisksctl unmount -b /path/to/unlocked/device
udisksctl lock -b /path/to/disk/partition
udisksctl power-off -b /path/to/disk/or/partition
설정 방법
디스크 사용 프로세스를 최대한 쉽게 만들기 위해 명령줄을 통해 설정하는 방법은 다음과 같습니다. 전체 USB 드라이브를 단일 파일 시스템으로 사용하고 싶다고 가정합니다. 다른 구성에는 수정 지침이 필요합니다. 변경 사항에 대한 경고: 권한이 없는 계정이 모든 연결을 끊도록 허용하는 암호화된 컨테이너에서 LVM을 사용하는 방법을 찾지 못했습니다. (볼륨 그룹을 비활성화하여 이를 수행하는 방법을 찾지 못했습니다 udisksctl
.)
설명을 위해 디스크를 이라고 하겠습니다 /dev/sda
. 나중에 참조하기 쉽도록 파일 시스템의 이름을 지정해야 합니다. 저는 " "을 사용하겠습니다 example
.
디스크 파티션 나누기
sudo parted /dev/sda
다음 명령을 실행 하고 실행하십시오.
mklabel gpt
mkpart example-part 1MiB -1s
quit
이 mkpart
명령은 매개변수를 약간 조정하라는 메시지를 표시할 수 있습니다. 권장 숫자로는 괜찮을 것입니다.
이제 파티션을 통과할 수 있습니다 /dev/disk/by-partlabel/example-part
.
LUKS 파티션 생성 및 마운트
sudo cryptsetup luksFormat /dev/disk/by-partlabel/example-part
프롬프트를 따르십시오.
sudo cryptsetup luksOpen /dev/disk/by-partlabel/example-part example-unlocked
이제 암호화 장치를 에서 사용할 수 있습니다 /dev/mapper/example-unlocked
. 이는 영구적인 것이 아니며 단지 설정 프로세스를 위한 것입니다.
파일 시스템 만들기
사용 중인 파일 시스템이 XFS라고 가정합니다. 거의 모든 기존 파일 시스템은 동일한 방식으로 작동합니다. 나중에 참조할 수 있도록 태그를 추가하는 것이 중요합니다.
sudo mkfs -t xfs -L example /dev/mapper/example-unlocked
이제 블록 장치를 통해 파일 시스템에 액세스할 수 있습니다 /dev/disk/by-label/example
.
파일 시스템 권한 설정
기본적으로 파일 시스템은 루트로만 액세스할 수 있습니다. 대부분의 경우 사용자 계정이 이러한 파일에 액세스할 수 있기를 원할 것입니다. 계정 이름이 " user
"라고 가정합니다.
udisksctl mount -b /dev/disk/by-label/example
sudo chown user:user /media/user/example
모든 것을 닫아라
udisksctl unmount -b /dev/disk/by-label/example
sudo cryptsetup luksClose example-unlocked
파일 시스템 사용
이것은 당신이 정기적으로 하는 일입니다. USB 드라이브를 삽입한 후,
udisksctl unlock -b /dev/disk/by-partlabel/example-part
udisksctl mount -b /dev/disk/by-label/example
사용자 계정이 " user
"인 경우 파일 시스템은 이제 에 마운트됩니다 /media/user/example
.
파일 시스템을 마운트 해제하려면 다음을 수행하십시오.
udisksctl unmount -b /dev/disk/by-label/example
udisksctl lock -b /dev/disk/by-partlabel/example-part
udisksctl power-off -b /dev/disk/by-partlabel/example-part
이제 USB 드라이브를 분리할 수 있습니다.
답변2
이것답변통과ASCII를 좋아하는나에게는 올바른 것 같으며 그렇게 표시되어야 합니다.
"나도 이 작업을 수행하는 단일 명령 방법을 모릅니다."로 시작합니다.기능 요구 사항. 해결 방법으로 래퍼 스크립트를 생성하여 파티션을 잠금 해제하고 마운트하는 단일 명령 방법을 제공할 수 있습니다.
Bash를 사용한다고 가정하면 아래 스크립트를 로 저장하고 unlock-and-mount
실행 가능하게 만든 다음 PATH
한 단계로 장치를 잠금 해제하고 마운트할 수 있습니다 unlock-and-mount /dev/disk/by-id/my-device-part-X
.
경고: 이는 표준 출력으로 전송된 메시지의 구문 분석과 udisksctl
명령줄 인터페이스의 안정성에 따라 달라집니다. udisksctl
소속사에 따르면 취약하다.udisksctl
매뉴얼 페이지, 내용은 다음과 같습니다.
[이] 프로그램은 스크립트나 다른 프로그램에서 사용하기 위한 것이 아닙니다. 옵션/명령은 유지 관리 릴리스에서도 향후 호환되지 않는 방식으로 변경될 수 있습니다.
그동안 현재 작동하는 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# A convenience wrapper around `udisksctl`.
# Trace execution
set -x
# Abort on errors. (I find this helpful, despite the cautions given in
# http://mywiki.wooledge.org/BashFAQ/105 and
# http://mywiki.wooledge.org/BashFAQ/112 .)
set -e
set -u
# Define functions
die () {
echo >&2 "$@"
exit 1
}
# Validate input argument(s)
[[ "$#" -eq 1 ]] || die "Exactly 1 argument required: path to partition ID. $# given"
[[ -b "$1" ]] || die "$1 is not a block device"
[[ "$1" == /dev/disk/by-id/* ]] || die "$1 does not begin '/dev/disk/by-id/'"
# Unlock partition
unlockedpart="$(udisksctl unlock -b "$1" |\
tail -n1 |\
sed -e 's/^Unlocked \/dev\/[[:print:]]\+ as \([[:print:]]\+\).$/\1/' \
)"
# Mount unlocked partition
udisksctl mount -b "$unlockedpart"
답변3
Nautilus/Nemo에 저장된 키가 사용됩니다.
gio mount -d /dev/dm-x
자세한 내용은이 답변을 참조하세요.
답변4
/etc/crypttab
Debian에서는 및 다음의 정의를 사용할 수 있습니다 /etc/fstab
.
cryptdisks_start <name>
mount <mountpoint>
umount <mountpoint>
cryptdisks_stop <name>