
私は/root
読み取り専用でインストールしました。gpg
以下のように暗号化された電子メールを送信するスクリプトがあります。
echo "hello" | gpg --no-verbose -e -a -r [email protected] | mail [email protected]
しかし、エラーが発生します。
gpg: failed to create temporary file `/root/.gnupg/.#dkflsfj': Read-only file system
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 [email protected]
それでも同じエラーが発生します。gpg: failed to create temporary file `/root/.gnupg/.#jkfjg': Read-only file system
と言うと--no-use-temp-files
エラーが発生しますgpg: Invalid option "--no-use-temp-files"
。
この問題を解決する他の方法はありますか?
答え1
ファイルのロックを--lock-never
試みないようにするオプションを使用してこの問題を解決しました。gpg
答え2
これはk6ドキュメントでも見ることができます。https://k6.io/docs/getting-started/installation/troubleshooting/#error-importing-k6s-gpg-key:
ユーザーがgpgを初めて実行して/root/.gnupg/ディレクトリがまだ存在しない場合、これが発生する可能性があります。ディレクトリを作成するには、sudo gpg -kを実行してキーのインポートを再試行してください。
答え3
このオプションは、接頭辞 "no-" を追加することで無効にできます。
--keyserver-オプション-名前=値1
これは、キーサーバーのオプションを提供するスペースまたはカンマ区切りの文字列です。逆の意味を与えるために、オプションの前に「no-」を付けることができます。
答え4
考えられる解決策の1つは、/root/.gnupg
読み取り/書き込みマウントファイルシステムの適切に保護された場所にディレクトリを移動し、その場所への/root/.gnupg
シンボリックリンクを設定することです。