gpg가 사용자의 홈 디렉토리에 .gnupg 디렉토리를 작성하지 못하게하는 방법


14

gpg도구를 사용하여 파일을 암호화하고 해독 하려고 하는데 사용자의 전역 상태를 변경하지 않고이 도구를 실행할 수 있는지 알고 싶습니다. 특히, gpg지정된 사용자로 처음 실행 .gnupg하면 사용자의 홈 디렉토리에 디렉토리 및 기타 아티팩트 가 작성 됩니다.

사용자의 공개 및 비밀 키 링 에서이 명령의 작동을 분리하는 데 약간의 성공을 거두었습니다 ( 이 방법에 대해서는 https://github.com/rcook/rgpg의 Ruby gem 참조 ). 행동 gpg을 막고 싶습니다.

답변:


11

당신은 그것에게 전달할 수있는 --homedir인수 또는 사용 GNUPGHOME이 아닌 다른 디렉토리를 사용하도록 환경 변수를 .gnupg. 이것을 스크립팅하는 경우 임시 디렉토리를 만들 수 있습니다.

GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME

그런 다음 완료되면 정리하십시오.

gpg ...
rm -rfi $GNUPGHOME

4

"gpg가 .gnupg 디렉토리를 작성하지 못하게하는 방법"

읽기 전용 마운트 디스크에서 일부 주요 지문을 확인하는 동안 질문 제목에 설명 된 것과 동일한 문제가있었습니다.

내가 사용한 해결책 --no-optionsgpg명령에 플래그를 추가하는 것이 었습니다 .

gpg --no-options  \
    --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

에 따라 수동 :

--no-options

--options / dev / null의 바로 가기입니다. 이 옵션은 옵션 파일을 열기 전에 감지됩니다. 이 옵션을 사용하면 ~ / .gnupg homedir이 작성되지 않습니다.

gpg가 여전히 사용자의 공개 및 비밀 키링을 읽을 수없는 오류를 인쇄하는 경우 리디렉션 2>/dev/null은 이러한 오류를 억제합니다. 그러나이 경우 키 정보가 인쇄 되더라도 명령의 종료 코드는 0이 아닐 수 있습니다.


2
나는 이것이 효과가 있다고 생각하지 않습니다. gpg는 홈 디렉토리에서 옵션 파일을 읽으려고 시도하지 않지만 쓰기를 시도하지는 않습니다. gpg에게 ​​HOME에 쓰기 권한이없는 경우에도 여전히 오류가 발생합니다. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': 파일 열기 오류 gpg : 만들 수 없음/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro : 문서가 정확합니다. 오류는 무시할 수 있지만 명령은 여전히 ​​작동합니다. 이 답변을 업데이트하겠습니다.
kkm

1

--no-options가 작동하지 않습니다. 여전히 .gnupg 폴더를 만듭니다. 그러나이 트릭을 사용하여 작동시킬 수 있습니다. GNUPGHOME이 "/ dev / null"을 가리 키도록합니다.

export GNUPGHOME="/dev/null"

그런 다음 gpg 명령을 실행하면 .gnupg가 전혀 생성되지 않습니다.

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