gpg

gpgはパイプの代わりに一時ファイルを使用する

/root を読み取り専用としてマウントしています。 gpg を使用して暗号化された電子メールを送信するスクリプトがあります。次のようなもの:

echo "hello" | gpg --no-verbose -e -a -r martin.com | mail martin.com

でも、エラーが出るんです。

gpg: failed to create temporary file `/root/.gnupg/.#dkflsfj':読み取り専用ファイルシステム

一時ファイルを使用しないように gpg に指示するにはどうすればよいですか?マニュアルページでオプション use-temp-files を見つけました:

use-temp-files

    ほとんどのUnixライクなプラットフォームでは、GnuPGはパイプを介してキーサーバーヘルパープログラムと通信します。これは最も効率的な方法です。このオプションにより、GnuPGは一時ファイルを使用して通信します。一部のプラットフォーム(Win32やRISC OSなど)では、このオプションは常に有効になっています。

設定でこのオプションを有効にしていません。どうやら、それはデフォルトで設定されています。このオプションを「無効にする」方法はありますか?オプション no-use-temp-files は効果がないようです:

echo "asdf" | gpg --keyserver-options no-use-temp-files -e -a -r martin.com

それでも同じエラーが発生します: gpg: failed to create temporary file `/root/.gnupg/.#jkfjg': Read-only file system 、 --no --no-use-temp-files と言うと、エラーが発生します: gpg: Invalid option "--no-use-temp-files"

この問題を解決する他の方法はありますか?

--lock-never オプションを使用して問題を解決しました。これにより、 gpg がファイルをロックしようとしなくなります。




接頭辞 "no-"を付けると、このオプションを無効にすることができます。

--keyserver-options name=value1

これはスペースまたはカンマで区切られた文字列で、鍵サーバに関するオプションを指定します。オプションの前に`no-'を付けると、逆の意味になります。


tar.gpgとtar.gz.gpgの比較