復号化キーなどの機密情報を含む環境変数を読み取るcrontabスクリプトがあります。 crontab エントリは次のように定義されます。
30 3 * * 5 VAR="pw" /usr/bin/script.sh
このように敏感なものを保管しても安全でしょうか?そうでなければ、どのように改善できますか?
助けてくれてありがとう。
答え1
他のユーザーがアクセスできないため、crontabファイルと環境に変数を入れておくのは安全です。ただし、たとえば、デバッグヘルプを要求したときにcrontab行を公開したり、スクリプトの自動化方法の例にコピーして誰かに送信したり、プロセスが進行した場合に誤って公開される危険性があります。環境を記録し、このパスワードにアクセスできない人はログにアクセスできます。または、バックアップしている場合は、このパスワードにアクセスできない人がバックアップにアクセスできます。秘密を別々のファイルまたはディレクトリツリーに保存し、必要に応じて読むことをお勧めします。
変更できない場合script.sh
:
VAR=$(cat ~/.secret/script/password)
script.sh
スクリプト全体で変数を使用可能にする代わりに、必要に応じて変数を読み取るように変更できる場合。
環境変数は他のユーザーに公開されませんが、他のユーザーが渡す可能性があるため、外部コマンドに引数として渡さないps
でください。$VAR
シェル組み込み関数の引数として使用するのは安全です$VAR
。たとえば、次は安全です。
gpg --passphrase-fd=3 3< <(printf %s "$PASSPHRASE")
この具体的な例は、次のように簡単に表現できます。
gpg --passphrase-file=/path/to/passphrase