Linuxへのログイン時にパスワード文字を表示する


11

Linuxボックスに接続する長距離ワイヤレスシリアルターミナル(だれか疑問に思っている人はXBeesのペア)をセットアップしています。順調に進んでいますが、キーストロークがうまくいかない場合があります。これは通常は管理可能です。不足していることがわかり、再度ヒットします。しかし、Linuxには何も表示されないため、パスワードを数回入力しなければならないのは悪いことです。すでにpwfeedbacksudoersファイルに行を追加しましたが、ログインプロンプトにもフィードバックを表示したいと思います。LinuxマシンはDebianを実行しています(実際には私のホームネットワークのほとんどを管理するのはラズベリーパイです)。

パスワードの入力中にttyログインプロンプトを変更してフィードバックを提供することは可能ですか?


これの代わりに:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password:

私はこれが欲しい:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password: **********

この回答を参照してください:unix.stackexchange.com/a/141272/27616
オリビエデュラック

現在、設定レベルでそのような変更が可能だとは思わない。端末ログインはagettyによって管理されます。agettyはパスワードプロンプトのために/ bin / loginを呼び出します。適切にログインソースコードを変更し、それを再コンパイルして修正バージョンを使用することで、説明した効果を達成できますが、これにはANSI Cの知識が必要です。
-DevilaN

回答:


1

私はこれを行うための設定を知りません。本当にそれをしたい場合、あなたはこれを達成することができます:
1-glibcパッケージのgetpass.cファイルのgetpass関数を変更します。
2-ビルドlibc-(VERSION).so
3-元のlib /(your archcitecture)/libc.soをバックアップします(名前をlibc-(VERSION).so.bakに変更し
ます4-新しいファイルをlib /(your archcitectureに移動します)/ 5-ldconfigを実行してキャッシュを更新
する例として、パスワードを読み取るコードを次のようなコードに置き換えることができます。

  /* Read the password. */
  // nread = __getline (&buf, &bufsize, in);

  int index=0;
  char c;
  while ( (c=getchar())!= EOF ){
     putch('*');
     buf[i]=c;
     ++i;
  }
  buf[i]='\0';
  nread=i;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.