So verhindern Sie, dass gpg das .gnupg-Verzeichnis im Home-Verzeichnis des Benutzers erstellt


14

Ich versuche, das gpgTool zum Ver- und Entschlüsseln von Dateien zu verwenden. Ich möchte wissen, ob es möglich ist, dieses Tool auszuführen, ohne den globalen Status eines Benutzers zu ändern. Insbesondere führt gpgdie erstmalige Ausführung als bestimmter Benutzer dazu, dass ein .gnupgVerzeichnis und andere Artefakte im Basisverzeichnis eines Benutzers erstellt werden.

Es ist mir gelungen, die Ausführung dieses Befehls vom öffentlichen und geheimen Schlüsselring eines Benutzers zu isolieren (siehe mein Ruby-Juwel unter https://github.com/rcook/rgpg ). Dies ist der letzte verbleibende Vorgang Verhalten gpgmöchte ich gerne verhindern.

Antworten:


10

Sie können das --homedirArgument übergeben oder die GNUPGHOMEUmgebungsvariable verwenden, um stattdessen ein anderes Verzeichnis zu verwenden .gnupg. Wenn Sie dieses Skript ausführen, können Sie ein temporäres Verzeichnis erstellen:

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

Und dann aufräumen, wenn Sie fertig sind:

gpg ...
rm -rfi $GNUPGHOME

4

"So verhindern Sie, dass gpg das .gnupg-Verzeichnis erstellt"

Ich hatte das gleiche Problem wie im Fragentitel beschrieben, als ich einige wichtige Fingerabdrücke auf einer schreibgeschützten Festplatte überprüft habe.

Als Lösung habe ich --no-optionsdem gpgBefehl das Flag hinzugefügt :

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

Gemäß Handbuch :

--no-options

Abkürzung für --options / dev / null. Diese Option wird erkannt, bevor versucht wird, eine Optionsdatei zu öffnen. Die Verwendung dieser Option verhindert auch die Erstellung eines ~ / .gnupg-Homedir.

Wenn gpg weiterhin Fehler ausgibt, die die öffentlichen und geheimen Schlüsselringe des Benutzers nicht lesen können, 2>/dev/nullwerden diese durch die Umleitung unterdrückt. Beachten Sie jedoch, dass der Beendigungscode des Befehls in diesem Fall möglicherweise ungleich Null ist, obwohl die Schlüsselinformationen gedruckt werden.


2
Ich glaube nicht, dass das funktioniert. Es verhindert, dass gpg versucht, die Optionsdatei aus dem Ausgangsverzeichnis zu lesen, aber es verhindert nicht, dass es versucht, darauf zu schreiben. Es tritt immer noch ein Fehler auf, wenn gpg keine Berechtigung zum Schreiben an HOME hat. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': Fehler beim Öffnen der Datei gpg: kann nicht erstellt werden/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro: Die Dokumentation ist korrekt; Die Fehler können ignoriert werden, der Befehl funktioniert jedoch weiterhin. Ich werde diese Antwort aktualisieren.
km

1

--no-options funktioniert nicht. Es wird immer noch der Ordner .gnupg erstellt. Sie können diesen Trick jedoch einfach ausführen, damit er funktioniert. Zeigen Sie GNUPGHOME auf "/ dev / null".

export GNUPGHOME="/dev/null"

Führen Sie dann einen gpg-Befehl aus, der gar keine .gnupg-Datei erstellt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.