2

コマンドを実行するために su が必要になる可能性のある bash スクリプトを作成しています。このようなもの-

echo "XYZ システムのインストール" echo "root パスワードを入力してください-" su -c "java -cp ./Installer.jar com.company.FmMain ; exit"

su 印刷文字 (アスタリスクなど) を使用して、ユーザーがパスワードを入力するときに視覚的なフィードバックを得る方法はありますか?

4

2 に答える 2

1

最初にパスワードを の外部で変数に読み込む必要がありますsu`read` でパスワードを読み取るときに星 (*) をエコーする方法は?の質問を参照してください。readこれを達成するために使用する例については。

次に、 を使用して、表示expectされるパスワード プロンプトにこのパスワードを渡す必要がありますsussh 経由でシステムに接続し、ホスト システムのパスワードを変更するには、expect をどのように使用すればよいですか?の質問を参照してください。似たようなことをする例として。

于 2012-08-30T21:34:59.853 に答える
1

Linux でパスワードをマスキングすることはお勧めしません。これは、予想される通常の動作に反し、特に経験豊富な Linux ユーザーの場合、ユーザーを混乱させる可能性があります。パスワードを読み取る標準的な方法は、パスワードを受け入れる前にエコーをオフにし、エスケープシーケンスなどの特殊文字の処理を無効にすることです (これは通常、端末属性 (tcsetattr など) を設定することによって行われます)。これが su の動作です。

これを行う getpass などの標準ライブラリ関数があります: http://www.gnu.org/s/hello/manual/libc/getpass.html

これを行う独自の方法を実装しようとすると、セキュリティが損なわれる可能性があります。私はこれに対して強く警告します。

于 2012-08-31T02:59:55.140 に答える