登录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: **********


我认为目前无法在配置级别进行此类更改。终端登录由agetty管理,agetty调用/ bin / login进行密码提示。您可以通过适当地更改登录源代码,重新编译并使用修改后的版本来实现上述效果,但这需要一些ANSI C知识。
DevilaN

Answers:


1

我不知道要执行此操作的任何配置,如果您确实要执行此操作,则可以通过以下方法实现此目的:
1-修改glibc软件包中getpass.c文件中的getpass函数。
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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.