gpg는 파이프 대신 임시 파일을 사용합니다.

gpg는 파이프 대신 임시 파일을 사용합니다.

저는 /root읽기전용으로 설치했습니다. gpg아래와 같이 암호화된 이메일을 보내는 스크립트가 있습니다 .

echo "hello" | gpg --no-verbose -e -a -r [email protected] | mail [email protected]

하지만 오류가 발생합니다.

gpg: failed to create temporary file `/root/.gnupg/.#dkflsfj': Read-only file system

gpg임시 파일을 사용하지 않도록 어떻게 알 수 있나요 ? use-temp-files옵션 을 찾았어요매뉴얼 페이지:

use-temp-files

    대부분의 Unix 계열 플랫폼에서 GnuPG는 가장 효율적인 방법인 파이프를 통해 키 서버 도우미와 통신합니다. 이 옵션은 GnuPG가 통신을 위해 임시 파일을 사용하도록 강제합니다. Win32 및 RISC OS와 같은 일부 플랫폼에서는 이 옵션이 항상 활성화되어 있습니다.

내 구성에서는 이 옵션이 활성화되어 있지 않습니다. 물론 기본적으로 설정되어 있습니다. 이 옵션을 "무효"하는 방법이 있나요? 이 옵션은 no-use-temp-files아무런 효과가 없는 것 같습니다.

echo "asdf" | gpg --keyserver-options no-use-temp-files -e -a -r [email protected]

여전히 같은 오류가 발생합니다. gpg: failed to create temporary file `/root/.gnupg/.#jkfjg': Read-only file system이라고 말하면 --no-use-temp-files오류가 발생합니다 gpg: Invalid option "--no-use-temp-files".

이 문제를 해결할 다른 방법이 있나요?

답변1

파일 잠금 시도를 --lock-never방지하는 옵션을 사용하여 이 문제를 해결했습니다 .gpg

답변2

이것은 k6 문서에서도 볼 수 있습니다.https://k6.io/docs/getting-started/installation/troubleshooting/#error-importing-k6s-gpg-key:

사용자가 gpg를 처음 실행하여 /root/.gnupg/ 디렉토리가 아직 존재하지 않는 경우 이런 일이 발생할 수 있습니다. 디렉터리를 생성하려면 sudo gpg -k를 실행하고 키 가져오기를 다시 시도하세요.

답변3

이 옵션은 접두사 "no-"를 추가하여 비활성화할 수 있습니다.

--keyserver-옵션-이름=값 1

이는 키 서버에 대한 옵션을 제공하는 공백 또는 쉼표로 구분된 문자열입니다. 반대의 의미를 부여하기 위해 옵션 앞에 "no-"를 붙일 수 있습니다.

답변4

한 가지 가능한 해결책은 /root/.gnupg읽기-쓰기 마운트 파일 시스템의 적절하게 보호된 위치로 디렉토리를 이동한 다음 /root/.gnupg해당 위치에 대한 기호 링크를 설정하는 것입니다.

관련 정보