スクリプト内で変数をエクスポートできません。

スクリプト内で変数をエクスポートできません。

マニュアルに従ってborg自動バックアップスクリプトを設定しようとしました。何らかの理由でsudoで保護された暗号化ドライブに書き込もうとすると、スクリプトはその変数を見ることができません。

たとえば、スクリプトが私にパスワードを再度要求しないため、このようなものがスクリプトとして機能する可能性があります。

#!/bin/sh

DATE=$(date --iso-8601)-$(hostname)
TARGET=~/Documents/borg
export BORG_PASSPHRASE="whatever"
borg init --encryption=repokey $TARGET
borg create $TARGET::$DATE-$$ ~/Desktop/TestFolder/1

ただし、外部FDE実装でドライブをマウントすると、エクスポートされたパスワードと奇妙な「リポキー」暗号化モードは無視されます。

#!/bin/sh

DATE=$(date --iso-8601)-$(hostname)
TARGET=~/X/borg
export BORG_PASSPHRASE="whatever"
sudo borg init --encryption=repokey $TARGET
sudo borg create $BORG_OPTS $TARGET::$DATE-$$ ~/Desktop/TestFolder/1

私はLinuxに初めて触れたので、これは単純な修正かもしれませんが、他の答えを見れば自分ではできません。助けてください。

ベストアンサー1

sudoは環境変数を保存しません-E。そのオプションを試してください。バラよりman 8 sudo

-E '-E(環境保存)オプションは、ユーザーが既存の環境変数を保存したいセキュリティポリシーを表します。 -Eオプションを指定した場合、ユーザーに環境を保存する権限がないと、セキュリティポリシーからエラーが返されることがあります。

おすすめ記事