gpgがユーザーのホームディレクトリに.gnupgディレクトリを作成しないようにする方法


14

gpgファイルを暗号化および復号化するツールを使用して実行しようとしていますが、ユーザーのグローバル状態を変更せずにこのツールを実行できるかどうかを知りたいです。具体的には、特定のgpgユーザーとして初めて実行する.gnupgと、ユーザーのホームディレクトリにディレクトリおよびその他のアーティファクトが作成されます。

このコマンドの操作をユーザーの公開キーリングと秘密キーリングから分離することに成功しました(これを行う方法については、https://github.com/rcook/rgpgにある Rubyのgemを参照してください)。gpg防止したいの行動。

回答:


11

--homedir引数を渡すか、GNUPGHOME環境変数を使用して、の代わりに別のディレクトリを使用することができます.gnupg。これをスクリプト化する場合、一時ディレクトリを作成できます。

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

そして、完了したらクリーンアップします。

gpg ...
rm -rfi $GNUPGHOME

4

「gpgが.gnupgディレクトリを作成しないようにする方法」

読み取り専用でマウントされたディスクでいくつかのキーフィンガープリントをチェックしているときに、質問のタイトルで説明したのと同じ問題がありました。

私が使用した解決策は--no-optionsgpgコマンドにフラグを追加することでした:

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

マニュアルに従って:

--no-options

--options / dev / nullのショートカット。このオプションは、オプションファイルを開こうとする前に検出されます。このオプションを使用すると、〜/ .gnupg homedirの作成も防止されます。

gpgがユーザーの公開キーリングと秘密キーリングを読み取れないというエラーを引き続き出力する場合、リダイレクト2>/dev/nullはこれらを抑制します。ただし、この場合、キー情報は出力されますが、コマンドの終了コードはゼロ以外になる場合があります。


2
これが機能するとは思わない。gpgがホームディレクトリからオプションファイルを読み取ろうとするのを防ぎますが、書き込みをしようとするのを防ぎません。gpgにHOMEへの書き込み権限がない場合は、エラーが引き続き発生します。gpg: keyblock resource /home/u/.gnupg/pubring.gpg ':ファイルオープンエラーgpg:作成できません/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro:ドキュメントは正しいです。エラーは無視できますが、コマンドは引き続き機能します。この回答を更新します。
kkm

1

--no-optionsは機能しません。それでも.gnupgフォルダーが作成されます。ただし、単にこのトリックを実行して機能させることができます-GNUPGHOMEを「/ dev / null」にポイントします

export GNUPGHOME="/dev/null"

次に、gpgコマンドを実行すると、.gnupgはまったく作成されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.