gpg --passphrase-fileはrootとして機能しませんか?

gpg --passphrase-fileはrootとして機能しませんか?

私はGnuPGをパイプとして使用してバックアップを暗号化したいと思います(stdinから読み込み、stdoutに書き込みます)。パスワードはファイルから読み取られます。コマンド例:

echo "mysecret" | gpg --passphrase-file password.key --batch --symmetric --cipher-algo AES256 > test.gpg

通常のユーザーとして実行するとうまくいきます。ただし、rootとして実行すると、次の結果が表示されます。

gpg: gpg-agent is not available in this session
gpg: can't query passphrase in batch mode
gpg: error creating passphrase: invalid passphrase
gpg: symmetric encryption of `[stdin]' failed: invalid passphrase

--passphrase-fileルートアクセス権を取得するにはどうすればよいですか?

--passphrase-fd 0提案どおりには使用できません。ここstdinは暗号化するデータであるためです。 GPG 1.4.20(Ubuntu 16.04.5 LTSから)を使用しています。

ベストアンサー1

入力に追加のファイル記述子を活用する解決策が見つかりました。

exec {FD}<password.key
echo "mysecret" | gpg --passphrase-fd ${FD} --batch --symmetric --cipher-algo AES256 > test.gpg

おすすめ記事