コマンドを実行するために su が必要になる可能性のある bash スクリプトを作成しています。このようなもの-
echo "XYZ システムのインストール" echo "root パスワードを入力してください-" su -c "java -cp ./Installer.jar com.company.FmMain ; exit"
su 印刷文字 (アスタリスクなど) を使用して、ユーザーがパスワードを入力するときに視覚的なフィードバックを得る方法はありますか?
最初にパスワードを の外部で変数に読み込む必要がありますsu
。`read` でパスワードを読み取るときに星 (*) をエコーする方法は?の質問を参照してください。read
これを達成するために使用する例については。
次に、 を使用して、表示expect
されるパスワード プロンプトにこのパスワードを渡す必要がありますsu
。ssh 経由でシステムに接続し、ホスト システムのパスワードを変更するには、expect をどのように使用すればよいですか?の質問を参照してください。似たようなことをする例として。
Linux でパスワードをマスキングすることはお勧めしません。これは、予想される通常の動作に反し、特に経験豊富な Linux ユーザーの場合、ユーザーを混乱させる可能性があります。パスワードを読み取る標準的な方法は、パスワードを受け入れる前にエコーをオフにし、エスケープシーケンスなどの特殊文字の処理を無効にすることです (これは通常、端末属性 (tcsetattr など) を設定することによって行われます)。これが su の動作です。
これを行う getpass などの標準ライブラリ関数があります: http://www.gnu.org/s/hello/manual/libc/getpass.html
これを行う独自の方法を実装しようとすると、セキュリティが損なわれる可能性があります。私はこれに対して強く警告します。