Показати символи пароля під час входу в Linux


11

Я встановлюю бездротовий послідовний термінал (з парою XBees, якщо хтось цікавиться), підключений до моєї скриньки Linux. Це чудово, але іноді натискання клавіш не проходить. Зазвичай це керовано, я побачу його відсутність і знову вдавлю його. Однак погано, коли мені доведеться кілька разів спробувати ввести свій пароль, оскільки Linux нічого не показує. Я вже додав pwfeedbackрядок до свого файлу sudoers, але я хотів би, щоб підказка для входу відображала і деякі відгуки. На машині 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, який викликає / bin / login для запиту пароля. Ви можете досягти описаного ефекту, змінивши правильний код входу, перекомпілюйте його та використовуючи модифіковану версію, але для цього потрібні деякі знання ANSI C.
DevilaN

Відповіді:


1

Я не знаю жодної конфігурації для цього, якщо ви дійсно хочете це зробити, ви можете досягти цього:
1 - змінити функцію getpass у файлі getpass.c у пакеті glibc.
2 - створити libc- (VERSION) .so
3 - створити резервну копію оригінальної lib / (вашої архітектури) /libc.so (скажіть, перейменувати на libc- (VERSION) .so.bak
4 - перемістити новий файл у lib / (ваша архітектура) ) / 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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.