登录 Linux 时显示密码字符

登录 Linux 时显示密码字符

我正在设置一个远程无线串行终端(如果有人想知道的话,使用一对 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: **********

答案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;

相关内容