Comment empêcher gpg de créer un répertoire .gnupg dans le répertoire personnel de l'utilisateur

14

J'essaie d'exécuter utiliser l' gpgoutil pour crypter et décrypter des fichiers et je voudrais savoir s'il est possible d'exécuter cet outil sans qu'il change l'état global d'un utilisateur. Plus précisément, gpgla première exécution en tant qu'utilisateur donné entraînera la création d'un .gnupgrépertoire et d'autres artefacts dans le répertoire personnel d'un utilisateur.

J'ai réussi à isoler le fonctionnement de cette commande du trousseau de clés public et secret d'un utilisateur (voir ma gemme Ruby à https://github.com/rcook/rgpg pour savoir comment je fais cela) et c'est le dernier restant comportement de gpgje voudrais empêcher.

Richard Cook
la source

Réponses:

11

Vous pouvez lui passer l' --homedirargument ou utiliser la GNUPGHOMEvariable d'environnement pour qu'il utilise un autre répertoire au lieu de .gnupg. Si vous créez un script, vous pouvez créer un répertoire temporaire:

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

Et puis nettoyez quand vous avez terminé:

gpg ...
rm -rfi $GNUPGHOME
larsks
la source
4

"Comment empêcher gpg de créer un répertoire .gnupg"

J'ai eu le même problème que celui décrit dans le titre de la question lors de la vérification des empreintes digitales clés sur un disque monté en lecture seule.

La solution que j'ai utilisée a été d'ajouter le --no-optionsdrapeau à la gpgcommande:

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

Selon le manuel :

--no-options

Raccourci pour --options / dev / null. Cette option est détectée avant une tentative d'ouverture d'un fichier d'options. L'utilisation de cette option empêchera également la création d'un homedir ~ / .gnupg.

Si gpg affiche toujours des erreurs qu'il ne peut pas lire les trousseaux de clés publics et secrets de l'utilisateur, la redirection 2>/dev/nullles supprimera. Notez, cependant, que le code de sortie de la commande peut être différent de zéro dans ce cas, même si les informations clés sont imprimées.

Sylvain Leroux
la source
2
Je ne pense pas que cela fonctionne. Il empêche gpg d'essayer de lire le fichier d'options depuis le répertoire personnel mais ne l'empêche pas d'essayer d'y écrire. Il reste des erreurs si gpg n'a pas la permission d'écrire dans HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': erreur d'ouverture de fichier gpg: impossible de créer/home/u/.gnupg/random_seed': No such file or directory
voxobscuro
1
@voxobscuro: La documentation est correcte; les erreurs peuvent être ignorées, mais la commande fonctionne toujours. Je mettrai à jour cette réponse.
kkm
1

--no-options ne fonctionne pas. il crée toujours le dossier .gnupg. Cependant, vous pouvez simplement faire cette astuce pour le faire fonctionner - Pointez GNUPGHOME sur "/ dev / null"

export GNUPGHOME="/dev/null"

Exécutez ensuite une commande gpg, cela ne créera pas du tout .gnupg.

Ivan Yuan
la source