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の比較