Como impedir que o gpg crie o diretório .gnupg no diretório inicial do usuário

14

Estou tentando executar o uso da gpgferramenta para criptografar e descriptografar arquivos e gostaria de saber se é possível executar essa ferramenta sem alterar o estado global do usuário. Especificamente, a execução gpgpela primeira vez como um determinado usuário fará com que ele crie um .gnupgdiretório e outros artefatos no diretório inicial de um usuário.

Eu tive algum sucesso em isolar a operação desse comando do conjunto de chaves público e secreto de um usuário (consulte minha gema Ruby em https://github.com/rcook/rgpg para saber como faço isso) e este é o último restante comportamento de gpgque eu gostaria de impedir.

Richard Cook
fonte

Respostas:

11

Você pode passar o --homedirargumento ou usar a GNUPGHOMEvariável de ambiente para que ela use outro diretório em vez de .gnupg. Se você estiver escrevendo isso, poderá criar um diretório temporário:

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

E depois limpe quando terminar:

gpg ...
rm -rfi $GNUPGHOME
larsks
fonte
4

"Como impedir que o gpg crie o diretório .gnupg"

Eu tive o mesmo problema descrito no título da pergunta ao verificar algumas impressões digitais importantes em um disco montado somente leitura.

A solução que usei foi adicionar o --no-optionssinalizador ao gpgcomando:

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

Conforme manual :

--no-options

Atalho para --options / dev / null. Esta opção é detectada antes de uma tentativa de abrir um arquivo de opções. O uso desta opção também impedirá a criação de um homedir ~ / .gnupg.

Se o gpg ainda imprimir erros que não podem ler os chaveiros públicos e secretos do usuário, o redirecionamento 2>/dev/nullos suprimirá. Observe, no entanto, que o código de saída do comando pode ser diferente de zero nesse caso, mesmo que as informações principais sejam impressas.

Sylvain Leroux
fonte
2
Eu não acredito que isso funcione. Impede que o gpg tente ler o arquivo de opções no diretório inicial, mas não o impeça de gravar nele. Ainda erros se o gpg não tiver permissão para gravar em HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': erro de abertura de arquivo gpg: /home/u/.gnupg/random_seed': No such file or directory
Ca
1
@ voxobscuro: a documentação está correta; os erros podem ser ignorados, mas o comando ainda funciona. Vou atualizar esta resposta.
kkm 25/06
1

--no-options não funciona. ainda cria a pasta .gnupg. No entanto, você pode simplesmente fazer esse truque para fazê-lo funcionar - aponte o GNUPGHOME para "/ dev / null"

export GNUPGHOME="/dev/null"

Em seguida, execute qualquer comando gpg, ele não criará .gnupg.

Ivan Yuan
fonte