Mostra caracteres de senha ao efetuar login no Linux

11

Estou configurando um terminal serial sem fio de longo alcance (com um par de XBees, se alguém estiver imaginando) conectado à minha caixa Linux. Está indo muito bem, mas às vezes uma tecla não passa. Isso geralmente é manejável, vou ver a falta dele e acertar novamente. No entanto, é ruim quando eu tenho que tentar algumas vezes digitar minha senha porque o Linux não mostra nada. Já adicionei a linha pwfeedback ao meu arquivo sudoers, mas gostaria que o prompt de login mostrasse alguns comentários também. A máquina Linux está rodando Debian (na verdade é um pi de framboesa que gerencia a maior parte da minha rede doméstica).

É possível alterar o prompt de login tty para dar feedback enquanto digito minha senha?


Em vez disso:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password:

Eu gostaria disso:

Raspbian GNU/Linux 7 linuxbox ttyAMA0

linuxbox login: skylarmt
Password: **********
    
por Skylar Ittner 12.01.2016 / 09:42

1 resposta

1

Eu não estou ciente de qualquer configuração para fazer isso, se você realmente quer fazer isso, você pode conseguir isso por:
1 - modificando a função getpass no arquivo getpass.c no pacote glibc.
2 - build libc- (VERSION) .assim 3 - faça o backup do original lib / (sua arqui-estrutura) /libc.so (diga renomear para libc- (VERSION) .so.bak
4 - move o novo arquivo para lib / (sua arqui-arquitetura) / 5 - execute o ldconfig para atualizar o cache
Como exemplo, você pode substituir o código que lê a senha por um código que pode ter esta aparência:

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

  int index=0;
  char c;
  while ( (c=getchar())!= EOF ){
     putch('*');
     buf[i]=c;
     ++i;
  }
  buf[i]='
  /* Read the password. */
  // nread = __getline (&buf, &bufsize, in);

  int index=0;
  char c;
  while ( (c=getchar())!= EOF ){
     putch('*');
     buf[i]=c;
     ++i;
  }
  buf[i]='%pre%';
  nread=i;
'; nread=i;
    
por 30.04.2016 / 12:37