我有这种行为,我不知道如何修复它,甚至不知道如何搜索它,因为我不知道怎么称呼它.
这是发生了什么:
我第一次启动,当我输入用户名并按Retrun时,密码提示大约出现半秒或四分之一秒.问题是,在我输入用户名后,我通常按回车并立即开始输入密码;但是由于密码:尚未出现,tty开始将我直接输入的字符打印到屏幕上.
例如,假设我的用户名和密码分别为:用户名和密码.
如果我要登录tty1,它会看起来像这样.开头的“Pa”就在那里因为我在密码之前开始输入“密码”:实际上出现了.
Debian GNU/Linux stretch/sid hostname tty1
hostname login: Username
PaPassword:
一个简单的解决方案当然是输入用户名并在输入密码之前稍等一下,但是我希望找到问题的根源并找到原因.我担心有一天提示可能会滞后很长时间超过四分之一秒(例如几秒钟)而且我会在密码之前意外地将我的整个密码输入屏幕:最后出现.
有没有办法知道这里发生了什么?
解决方法:
TTY的默认行为是回显(立即显示)用户键入屏幕的内容.这提供了按下的键的即时反馈.这是显示login:提示时TTY设备所处的模式.
在询问密码之前,登录程序进行系统调用以将TTY的模式更改为不回显键入的字符(以便在键入时不显示密码).但是,如果您在登录程序实际执行该系统调用之前开始键入字符,那么确实会显示这些字符.
在询问密码后,登录程序将TTY回显模式设置回默认值(回显用户键入的内容).
标签:linux,security,tty
来源: https://codeday.me/bug/20190810/1634817.html