gpg
ツールを使用してファイルを暗号化および復号化して実行しようとしています。ユーザーのグローバル状態を変更せずにこのツールを実行できるかどうかを知りたいのですが。具体的には、特定のユーザーとして初めてgpg
を実行すると、.gnupg
ディレクトリおよびその他のアーティファクトは、ユーザーのホームディレクトリにあります。
私はこのコマンドの操作をユーザーの公開鍵と秘密鍵のリングから分離することにある程度成功しています(my Ruby gem https://github.com/rcook/ rgpg (これをどのように行うか)、そしてこれがgpg
の最後の残りの動作です。
--homedir
引数を渡すか、GNUPGHOME
環境変数を使用して、.gnupg
の代わりに別のディレクトリを使用することができます。これをスクリプト化している場合は、一時ディレクトリを作成できます。
GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME
そして、完了したらクリーンアップします。
gpg ...
rm -rfi $GNUPGHOME
"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
はこれらを抑制します。ただし、この場合、キー情報が出力されていても、コマンドの終了コードはゼロ以外になる場合があります。
--no-optionsは機能しません。それでも.gnupgフォルダーが作成されます。ただし、このトリックを実行して機能させることができます-GNUPGHOMEに "/ dev/null"を指定します
export GNUPGHOME="/dev/null"
次に、任意のgpgコマンドを実行します。gnupgはまったく作成されません。