Linux'ta oturum açarken şifre karakterlerini göster


11

Linux kutuma bağlı uzun menzilli bir kablosuz seri terminal (biri merak ediyorsa bir çift XBees ile) kuruyorum. Harika gidiyor, ama bazen bir tuşa dokunmuyoruz. Bu genellikle yönetilebilir, eksikliğini göreceğim ve tekrar vuracağım. Ancak, Linux için hiçbir şey göstermediği için şifremi yazmak için birkaç kez denemem gerektiğinde kötü oluyor. pwfeedbackSatırı sudoers dosyasına zaten ekledim , ancak giriş isteminin de bazı geri bildirimler göstermesini istiyorum. Linux makinesi Debian'ı çalıştırıyor (aslında ev ağımın çoğunu yöneten bir ahududu pi).

Şifremi yazarken geribildirim vermek için tty giriş istemini değiştirmek mümkün müdür?


Bunun yerine:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password:

Bunu isterdim:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

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


Şu anda yapılandırma düzeyinde böyle bir değişikliğin mümkün olduğunu düşünmüyorum. Terminal girişi, parola istemi için / bin / login'i çağıran agetty tarafından yönetilir. Giriş kaynak kodunu doğru bir şekilde değiştirerek, yeniden derleyip değiştirilmiş sürümü kullanarak açıklanmış bir etki elde edebilirsiniz, ancak bu bazı ANSI C bilgisi gerektirir.
DevilaN

Yanıtlar:


1

Bunu yapmak için herhangi bir yapılandırma farkında değilim, GERÇEKTEN yapmak istiyorsanız bunu elde edebilirsiniz:
1 - glibc paketindeki getpass.c dosyasında getpass işlevini değiştirerek.
2 - libc- (VERSION) oluşturun .so
3 - orijinal lib / (archcitecture) /libc.so dosyasını yedekleyin (libc olarak yeniden adlandırın deyin- (VERSION) .so.bak
4 - yeni dosyayı lib / (archcitecture'e taşıyın) ) / 5 - önbelleği güncellemek için ldconfig komutunu çalıştırın.
Örneğin, parolayı okuyan kodu aşağıdaki gibi görünen bir kodla değiştirebilirsiniz:

  /* 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;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.