고쳐 쓰다

고쳐 쓰다

# cryptsetup luksOpen /dev/somedevice --key-file <(gpg2 somekeyfile.gpg)항상 실패합니다 Failed to open key file. . 이 작업을 수행할 수 있는 방법이 있습니까? --key-file -또한 실패했습니다. 내가 해야 할 유일한 일은 명명된 파이프를 사용하는 것뿐이었습니다. 하지만 짜증난다.

아, 사실 문제는 /dev/fd/63일반 사용자가 만든 파일은 sudo 명령으로 열 수 없다는 점입니다. 해결책이 있나요?

고쳐 쓰다

최신 cryptsetup이 수년 동안 출시되었기 때문입니다. 오류 가 --key-file -더 이상 존재하지 않습니다. 이제 이 질문은 대부분의 최신 배포판에는 유효하지 않습니다. 다음 파이프라인은 파일에만 작동합니다.

gpg2 somekeyfile.gpg | sudo cryptsetup ... --key-file - 

답변1

sudo를 사용할 때 권한 문제만큼 간단한 경우 전체 파일을 bash에 전달하여 상위 프로세스가 아닌 sudo의 하위 프로세스에서 파일이 열리는지 확인할 수 있습니다.

sudo bash -c 'cryptsetup luksOpen /dev/somedevice --key-file <(gpg2 somekeyfile.gpg)'

답변2

sudo0-2(stdin, stdout 및 srderr)를 제외한 모든 열려 있는 파일 설명자를 닫습니다. 예를 들어:

$ ls -l /dev/fd/ 30</
total 0
lrwx------ 1 tim tim 64 Nov  4 20:08 0 -> /dev/pts/5
lrwx------ 1 tim tim 64 Nov  4 20:08 1 -> /dev/pts/5
lrwx------ 1 tim tim 64 Nov  4 20:08 2 -> /dev/pts/5
lr-x------ 1 tim tim 64 Nov  4 20:08 3 -> /proc/26165/fd
lr-x------ 1 tim tim 64 Nov  4 20:08 30 -> /
$ sudo ls -l /dev/fd/ 30</
total 0
lrwx------ 1 root root 64 Nov  4 20:09 0 -> /dev/pts/5
lrwx------ 1 root root 64 Nov  4 20:09 1 -> /dev/pts/5
lrwx------ 1 root root 64 Nov  4 20:09 2 -> /dev/pts/5
lr-x------ 1 root root 64 Nov  4 20:09 3 -> /proc/26170/fd

관련 정보