agetty.c
将某些字符视为@
,视为特殊字符。在登录提示符处输入@
符号时,将删除所有文本。它与安全性有什么关系,或者根据设计它们是否被视为特殊字符?
答案 0 :(得分:1)
宏:int VKILL这是KILL中KILL字符的下标 特殊控制字符数组。 termios.c_cc [VKILL]持有 性格本身。 KILL字符仅在规范中被识别 输入模式。当用户键入kill字符时,整个 当前输入行的内容被丢弃。杀人 角色本身也被丢弃了。
KILL角色通常是C-u。more...
另一个解释@
的人:
作为一个历史记录,擦除字符最初是#,而且 杀人角色原本是@。这些作业可以追溯到 古老的日子,终端用真正的墨水印在真纸上 发出很大的声音。但是,我被告知有一些现代的 这些设置仍然是默认more...
的系统
答案 1 :(得分:1)
如果您正在查看源代码,您会看到 @ 和 Ctrl U 都是行终止字符的同义词。
这是TTY线路规则使用NAK(Ctrl-U)等控制字符进行流量控制的历史遗迹。尽管仍然存在很少的系统,这些系统对可用的字符集施加了硬件限制,但@
等历史遗迹仍然存在于那里的3个设备中,在那里您无法发送实际的Ctrl-U并将其作为一个0x15。您还将看到与#相同的功能,作为 BS 的历史同义词。
即使你忽略了那些如此有限的老式设备,老习惯,特别是在getty和stty中仍然存在,因为“我们总是这样做”。