bashスクリプトを書いているので、ユーザーにパスワードを要求してに渡す必要がありますopenssl。なくなりopensslパスワード自体を読むことができ、私はプログラムの2つの実行のために必要と二回ユーザーに依頼する必要はありません。スクリプトは次のとおりです。
cp file{,.old}
read -sp 'Enter password. ' PASS; echo
export PASS
# decode | edit | encode
openssl enc -d -aes-256-cbc -k "$PASS" -in file.old | \
sed ... | openssl enc -e -aes-256-cbc -k "$PASS" -out file
unset PASS
パスワードはコマンドラインを見ると簡単に入手できるため、これは安全ではありません。psたとえば、誰かがそれを使用して読むことができます。
openssl環境変数からパスワードを読み取ることができますので、私は置き換えることができ-k "$PASS"て-pass env:PASS、それはまだ安全ではありません。任意のプロセスの環境変数は自由に読み取ることができます(繰り返しpsます)。
それでは、どうすれば2つのopensslインスタンスにパスワードを安全に渡すことができますか?
psからプロセスの環境を読み取り/proc/<pid>/environますが、このファイルには0600アクセス許可があるため、プロセスを実行しているのはrootとユーザーのみです。それはかなり安全だと思います。