Come impedire a gpg di creare la directory .gnupg nella home directory dell'utente


14

Sto cercando di eseguire utilizzare lo gpgstrumento per crittografare e decrittografare i file e vorrei sapere se è possibile eseguire questo strumento senza che cambi lo stato globale di un utente. In particolare, l'esecuzione gpgper la prima volta come un determinato utente provocherà la creazione di una .gnupgdirectory e di altri artefatti nella home directory di un utente.

Ho avuto un certo successo nell'isolare il funzionamento di questo comando dal portachiavi pubblico e segreto di un utente (vedi la mia gemma di Ruby su https://github.com/rcook/rgpg per come lo faccio) e questo è l'ultimo rimasto comportamento di gpgmi piacerebbe prevenire.

Risposte:


11

È possibile passare l' --homedirargomento o utilizzare la GNUPGHOMEvariabile di ambiente per far sì che utilizzi un'altra directory anziché .gnupg. Se stai scrivendo questo script, potresti creare una directory temporanea:

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

E poi ripulisci quando hai finito:

gpg ...
rm -rfi $GNUPGHOME

4

"Come impedire a gpg di creare la directory .gnupg"

Ho avuto lo stesso problema descritto nel titolo della domanda durante il controllo di alcune impronte digitali chiave su un disco montato di sola lettura.

La soluzione che ho usato è stata l'aggiunta del --no-optionsflag al gpgcomando:

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

Come da manuale :

--no-options

Scorciatoia per --options / dev / null. Questa opzione viene rilevata prima di un tentativo di aprire un file di opzioni. L'uso di questa opzione impedisce anche la creazione di un ~ / .gnupg homedir.

Se gpg stampa ancora errori che non è in grado di leggere i portachiavi pubblici e segreti dell'utente, il reindirizzamento 2>/dev/nullli eliminerà. Si noti, tuttavia, che il codice di uscita del comando potrebbe essere diverso da zero in questo caso, anche se le informazioni sulla chiave sono stampate.


2
Non credo che funzioni. Impedisce a gpg di provare a leggere il file delle opzioni dalla home directory ma non gli impedisce di provare a scrivergli. Rimane comunque un errore se gpg non ha il permesso di scrivere su HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': errore di apertura file gpg: impossibile creare/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro: la documentazione è corretta; gli errori possono essere ignorati, ma il comando funziona comunque. Aggiornerò questa risposta.
kkm

1

--no-options non funziona. crea ancora la cartella .gnupg. Tuttavia, puoi semplicemente fare questo trucco per farlo funzionare - Punta GNUPGHOME su "/ dev / null"

export GNUPGHOME="/dev/null"

Quindi esegui qualsiasi comando gpg, non creerà affatto .gnupg.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.