Cómo evitar que gpg cree el directorio .gnupg en el directorio de inicio del usuario

14

Estoy tratando de ejecutar usar la gpgherramienta para cifrar y descifrar archivos y me gustaría saber si es posible ejecutar esta herramienta sin que cambie el estado global de un usuario. Específicamente, ejecutarse gpgpor primera vez como un usuario determinado hará que cree un .gnupgdirectorio y otros artefactos en el directorio de inicio de un usuario.

He tenido éxito al aislar la operación de este comando del llavero público y secreto de un usuario (vea mi gema Ruby en https://github.com/rcook/rgpg para saber cómo hago esto) y este es el último que queda comportamiento de gpglo que me gustaría prevenir.

Richard Cook
fuente

Respuestas:

11

Puede pasarle el --homedirargumento o usar la GNUPGHOMEvariable de entorno para que use otro directorio en lugar de .gnupg. Si está escribiendo esto, puede crear un directorio temporal:

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

Y luego limpia cuando hayas terminado:

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

"Cómo evitar que gpg cree el directorio .gnupg"

Tuve el mismo problema que el descrito en el título de la pregunta mientras comprobaba algunas huellas digitales clave en un disco montado de solo lectura.

La solución que utilicé fue agregar la --no-optionsbandera al gpgcomando:

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

Según el manual :

--no-options

Atajo para --options / dev / null. Esta opción se detecta antes de intentar abrir un archivo de opciones. El uso de esta opción también evitará la creación de un homedir ~ / .gnupg.

Si gpg todavía imprime errores que no puede leer los llaveros públicos y secretos del usuario, la redirección 2>/dev/nulllos suprimirá. Sin embargo, tenga en cuenta que el código de salida del comando puede ser distinto de cero en este caso, aunque se imprima la información clave.

Sylvain Leroux
fuente
2
No creo que esto funcione. Impide que gpg intente leer el archivo de opciones del directorio de inicio, pero no evita que intente escribir en él. Todavía errores si gpg no tiene permiso para escribir en HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': error de apertura de archivo gpg: no se puede crear/home/u/.gnupg/random_seed': No such file or directory
voxobscuro
1
@voxobscuro: la documentación es correcta; los errores pueden ignorarse, aunque el comando aún funciona. Actualizaré esta respuesta.
kkm
1

--no-options no funciona. Todavía crea la carpeta .gnupg. Sin embargo, simplemente puede hacer este truco para que funcione: apunte GNUPGHOME a "/ dev / null"

export GNUPGHOME="/dev/null"

Luego ejecute cualquier comando gpg, no creará .gnupg en absoluto.

Ivan Yuan
fuente