리눅스에서 FUSE로 마운트할 때 특이사항 (VeraCrypt 포함)

만약 리눅스에서 VeraCrypt 볼륨을 마운트할 때

Permission denied: file.hc

VeraCrypt::File::Open:232

와 같은 오류가 발생한다면, 이 글이 도움이 될 수 있습니다!

왜 이런 오류가 발생하나요?

거의 대부분 암호화된 VeraCrypt 파일이 VeraCrypt가 접근할 수 없는 FUSE 마운트에 저장되어 있기 때문에 그렇습니다.

더 설명하자면, FUSE는 커스텀 파일시스템을 마운트할 때 사용되는데, 예를 들어 SSH를 기반으로 한 파일시스템이나 (SSHFS), 또는 삼바 (Samba) 공유 저장소 (NAS와 같은 저장소), 또는 다른 암호화 소프트웨어 (예를 들어 VeraCrypt의 또 다른 볼륨이나 Cryptomator)의 파일시스템이 여기에 해당합니다. FUSE는 마운트 장소를 지정하고, 사용자의 컴퓨터와 저장소 사이의 복잡한 번역을 담당하며, 사용자는 이러한 세부 사항을 모른 채 마운트를 변경할 수 있습니다.

여기에서 문제가 왜 발생하냐면, 리눅스의 FUSE는 누가 처음으로 볼륨을 마운트했는지 확인하고 그 사용자 이외의 접근을 제한하기 때문입니다. 이는 적어도 기본 설정에서 슈퍼유저(최고관리자)에게도 해당합니다. 만약 이게 복잡하다면, 처음으로 파일시스템을 마운트한 사용자만이 그 파일시스템에 접근 권한이 있으며, 다른 아무도 이 마운트에 접근할 수 없다는 것을 기억하시면 됩니다.

여기에서 VeraCrypt는 슈퍼유저 권한을 필요로 하는데, 그 이유는 볼륨을 /mnt나 슈퍼유저 권한이 필요한 시스템 마운트 경로에 마운트를 시도하기 때문입니다. 따라서, root (루트) 사용자로 실행하는데, 아까 위의 제한을 기억하시나요? 아무리 root 사용자라도 FUSE는 암호화된 VeraCrypt 파일을 담은 기존 마운트의 접근을 허가하지 않기에 VeraCrypt가 이 파일에 접근하지 못하여 열지 못하는 것입니다.

어떻게 해결하나요?

다음 방법 중 하나로 해결 가능합니다:

root 사용자로 마운트하기

기존의 파일시스템을 root 사용자로 마운트한다면, VeraCrypt가 파일을 마운트하는데 아무런 문제가 없게 됩니다. 하지만, 이렇게 마운트를 한다면 기존 마운트에는 현재 사용자의 접근을 거부하게 되는데, 그러면 기존 마운트의 파일을 수정할 수 없게 됩니다. 만약 이 파일시스템이 NAS와 같은 파일을 수시로 수정해야 되는 마운트라면 이게 꽤 귀찮아집니다.

FUSE 설정으로 다른 사용자 (또는 root)를 허용하기

다음 줄을 /etc/fuse.conf 파일에 추가합니다:

user_allow_other

만약 줄이 이미 있다면, 앞에 코멘트가 없는 것을 확인해서 활성화 상태를 확인하세요.

그 다음, 기존의 파일시스템을 마운트할 때, 선택적 명령 구문을 추가해서 다른 사용자 또는 root 사용자가 마운트에 접근할 수 있도록 할 수 있습니다.

다른 사용자들의 접근을 허용하고 싶을 때 (root 사용자 포함):

-o allow_other

만약 root 사용자만의 접근을 허용하고 싶다면:

-o allow_root

댓글