3

agetty.c某些字符@视为特殊字符。在@登录提示符处输入符号时,它会删除所有文本。它与安全性有什么关系,还是按照设计它们被视为特殊字符?

4

2 回答 2

1

宏: int VKILL 这是特殊控制字符数组中 KILL 字符的下标。termios.c_cc[VKILL] 保存角色本身。KILL 字符仅在规范输入模式下被识别。当用户键入 kill 字符时,当前输入行的全部内容都将被丢弃。杀死角色本身也被丢弃。

KILL 字符通常是 Cu。更多的...

另一个解释@

作为历史记录,擦除字符最初是#,而杀死字符最初是@。这些作业可以追溯到过去,当时终端用真墨水在真纸上打印并产生大量噪音。但是,有人告诉我,在某些现代系统上,这些设置仍然是默认设置更多...

于 2012-07-12T05:38:53.833 回答
1

如果您正在查看源代码,您会看到两者@CtrlU都是 line kill 字符的同义词。

这是 TTY 线路纪律使用诸如 NAK (Ctrl-U) 之类的控制字符进行流量控制时的历史遗物。尽管仍然存在对可用字符集施加硬件限制的系统很少,但历史遗迹@仍然存在于 3 台设备中,您无法发送实际的 Ctrl-U 并将其作为 0x15 接收。您还将看到与#的历史同义词相同的功能BS

即使您忽略了非常有限的老式设备,旧习惯,特别是在 getty 和 stty 中仍然存在,因为“我们一直都是这样做的”。

于 2012-07-12T05:52:50.433 回答