“关键”图像不是字符字形,而是终端绘制的自定义光标形状。
只要看起来用户被要求输入密码或类似的敏感数据,终端就会显示这种特殊的光标形状。除了显示此光标外,它还将键盘限制为罗马输入法,以避免输入法无意中将敏感信息显示为行内文本或在另一个窗口中。这就像标准的 OS X 密码文本字段。
当终端看到 TTY 设备配置为规范(又名“cooked”)模式并且字符回显关闭时,终端进入此模式。在此配置中,用户输入不会回显,只有 TTY 设备输入缓冲区会看到字符,直到您键入 Return 将其发送到应用程序。这确保了在您输入文本时无论是 TTY 设备还是应用程序都无法回显用户输入,因此此配置通常仅用于读取敏感信息。
您可以通过运行在 Bash 中查看它的运行情况
stty -echo && echo Tell me your secrets: && cat; stty echo
Run Code Online (Sandbox Code Playgroud)
stty -echo关闭 TTY 字符回显,当 Bash 运行命令时它启用规范模式,因此以下cat命令将以“密码”模式运行。cat将回显每一行输入,直到您键入Control- D。退出stty echo后重新打开cat。
请注意,read -s在这种模式下,shell 脚本可以简单地使用TTY 进行读取,例如,
while read -sp 'Tell me your secrets: '; do echo; echo $REPLY | vis; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |