为什么在 tty 中输入用户名后密码提示会稍微滞后?

ora*_*nge 7 linux security tty

我有这种行为,我不知道如何修复它,甚至不知道如何搜索修复它,因为我什至不知道如何称呼它。

这是发生了什么:

我第一次启动时,当我输入用户名并按Retrun密码时,大约半秒或四分之一秒后会出现提示。问题是,在我输入用户名后,我通常按下Return并立即开始输入密码;但是由于Password:还没有出现,tty开始将我输入的字符直接打印到屏幕上。

例如,假设我的用户名和密码分别是:UsernamePassword。如果我要登录,tty1它看起来像这样。开头的“Pa”在那里是因为我在Password:实际出现之前就开始输入“密码” 。

Debian GNU/Linux stretch/sid hostname tty1

hostname login: Username
PaPassword:
Run Code Online (Sandbox Code Playgroud)

一个简单的解决方案当然是输入用户名并在输入密码之前稍等片刻,但是我希望深入了解并找到导致此问题的原因。我担心有一天提示可能会滞后超过四分之一秒(例如几秒钟),并且我会在Password:最终出现之前不小心将整个密码输入到屏幕上。

有没有办法知道这里发生了什么?

Gre*_*ill 2

TTY 的默认行为是回显(立即显示)用户在屏幕上键入的任何内容。这提供了按下按键的即时反馈。login:这是显示提示时 TTY 设备所处的模式。

在询问密码之前,登录程序会进行系统调用以将 TTY 模式更改为回显键入的字符(以便您键入密码时不会显示密码)。但是,如果您在登录程序实际执行该系统调用之前开始键入字符,那么这些字符确实会显示。

询问密码后,登录程序将 TTY 回显模式设置回默认值(回显用户键入的内容)。