【问题标题】:How can I create a loop between two TTYs?如何在两个 TTY 之间创建循环?
【发布时间】:2009-02-04 23:39:28
【问题描述】:

每个 Hello 都有一个响应。第二个 TTY 将向发件人 TTY 发送一个问候,反之亦然:

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

第一个接收者应该向原始发送者发送“hello”,但它没有。怎么了?

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

【问题讨论】:

  • 你有运行在 /dev/pts/0 的 shell 吗?
  • 是的,我有两个 shell 正在运行。初始发件人是 /dev/pts/1。

标签: unix tty


【解决方案1】:

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

有一个 ioctl() 调用 TIOCSTI 可用于在另一个 TTY 上伪造输入,但前提是您对另一个 TTY 具有“写入”权限。

许多年前,我记得我和一些朋友在某些版本的 UNIX 上发现了漏洞,这些漏洞没有正确执行 TIOCSTI 的安全权限。如果 root 已将终端留在某处登录,则可以让 root 用户的终端代表您输入命令...

【讨论】:

    猜你喜欢
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多