如何在两个TTY之间创建循环?

时间:2009-02-04 23:39:28

标签: unix tty

每个Hello都有回复。第二个TTY将向发送方TTY发送问候语,反之亦然:

echo 'echo hello > /dev/pts/1' > /dev/pts/0

第一个收件人应该向原始发件人发送“hello”,但事实并非如此。有什么问题?

[澄清] 我有两个shell正在运行。 / dev / pts / 1是初始发件人。

1 个答案:

答案 0 :(得分:3)

当您将echo命令发送到/dev/pts/0时,您实际上只是将该回音的输出发送到其他TTY的输出 - 您发送它到其他TTY的输入缓冲区。因此,您的嵌套echo命令将仅显示在另一个TTY上,但不会执行。

有一个ioctl()来电TIOCSTI可以用来伪造另一个TTY上的输入,但前提是你对其他TTY有“写入”权限。

很多年前,我记得有些朋友和我在某些版本的UNIX上发现了漏洞,这些版本没有正确地强制执行TIOCSTI的安全权限。如果root已经在某处登录了终端,则可以代表您在root命令中设置root用户的终端类型...