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とユーザーのみです。それはかなり安全だと思います。