web-dev-qa-db-ja.com

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

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

私はこのコマンドの操作をユーザーの公開鍵と秘密鍵のリングから分離することにある程度成功しています(my Ruby gem https://github.com/rcook/ rgpg (これをどのように行うか)、そしてこれがgpgの最後の残りの動作です。

15
Richard Cook

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

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

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

gpg ...
rm -rfi $GNUPGHOME
11
larsks

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

読み取り専用でマウントされたディスクでいくつかの主要な指紋を確認しているときに、質問のタイトルで説明されているのと同じ問題がありました。

私が使用した解決策は、--no-optionsフラグをgpgコマンドに追加します。

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はこれらを抑制します。ただし、この場合、キー情報が出力されていても、コマンドの終了コードはゼロ以外になる場合があります。

5
Sylvain Leroux

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

export GNUPGHOME="/dev/null"

次に、任意のgpgコマンドを実行します。gnupgはまったく作成されません。

1
Ivan Yuan