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