ユーザーにbashシェルプロンプトでパスワードを入力させ、そのパスワードをプログラムのstdinの一部にするための(1)最も安全で(2)最も簡単な方法を探しています。
:これが見えるようにstdinを必要とするもので{"username":"myname","password":"<my-password>"}
、<my-password>
何をしているが、プロンプトシェルに入力されます。プログラムstdinを制御できれば、パスワードを安全に要求して設定できるようにプログラムを変更できますが、ダウンストリームは標準的な汎用コマンドです。
以下を使用するアプローチを検討し、拒否しました。
- コマンドラインにパスワードを入力するユーザー:パスワードは画面に表示され、「ps」を介してすべてのユーザーに表示されます
- 外部プログラムへの引数へのシェル変数補間(例:)
...$PASSWORD...
:パスワードは引き続き "ps"を介してすべてのユーザーに表示されます - 環境変数(環境に残っている場合):パスワードはすべての子プロセスに表示されます。信頼できるプロセスでさえ、診断の一部としてコアダンプまたは環境変数をダンプする場合、パスワードを公開する可能性があります
- 長期間ファイルに保存されたパスワード、たとえ権限が厳しいファイルでも:ユーザーが誤ってパスワードを公開し、rootユーザーが誤ってパスワードを表示する可能性があります
私は現在の解決策を以下の答えとして挙げますが、誰かがそれを思いついた場合、より良い答えを喜んで選択します。もっと単純なもの、または誰かが私が見逃したセキュリティ上の懸念を見つけたのではないかと思います。