问题标签 [tty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
814 浏览

unix - 为什么要为我的 tty 设置写权限才能使用 write cmd?

write命令的目的是将 msg 发送给登录 tty 的用户。为了让这个命令起作用,接收者应该在他的 tty 上为组设置写权限。这是必要的,因为:

  1. 属于/dev/ttyXXXtty 组
  2. write命令将 SGID 与 tty 组一起使用,以让用户有机会写入某人的 tty

好的。现在,如果发件人没有为自己的 tty 设置写权限,他就不能写给其他人的 tty。我看不出有任何技术依据!这只是为了保持某种礼貌吗?即使在这种情况下,为什么wall命令不遵循相同的原则?任何人都可以使用墙,而他mesg说 n....

我错过了什么吗?

0 投票
1 回答
459 浏览

c - 响应 isatty(3) 的文件

我想编写自己的伪外壳,并希望获得漂亮的颜色等。我该如何欺骗子进程使其认为它在 TTY 中?我已经阅读了有关虚拟 TTY 的信息,但没有找到有关如何创建虚拟 TTY 或如何使子流程认为isatty(stdout) == 1.

0 投票
1 回答
312 浏览

perl - 此 tty 上的选项卡有多少个空格

我有一个 perl 脚本正在写入标准输出,它是一个 tty。有没有办法确定该 tty 上的选项卡有多少空格?

0 投票
2 回答
7292 浏览

linux - 将数据传输到需要 TTY(终端)的 Linux 程序

我在 Linux 中有一个程序,如果它的标准输入/标准输出不是 TTY(终端设备),它会拒绝运行。是否有一个易于使用的工具可以创建 PTY,使用新创建的 TTY 启动程序,并通过 stdin/stdout 复制所有数据?

用例不是交互式的,而是脚本。我正在寻找最轻量级的解决方案,最好不要创建 TCP 连接,并且不需要安装太多其他工具和库。

0 投票
1 回答
724 浏览

linux - 同一 tty 上登录用户的历史记录

是否有一些文件可以跟踪终端历史记录和登录到同一终端的用户?谢谢

0 投票
5 回答
143182 浏览

c - pty 和 tty 是什么意思?

我注意到在一些开源项目中提到了很多ptytty有人可以告诉我它们是什么意思,它们之间有什么区别吗?

0 投票
1 回答
1634 浏览

session - 控制终端和新会话

进程(在我的情况下是会话负责人)如何获得控制终端?

我在我的程序中做什么:

我相信我不会在输出中得到任何东西。(孩子是会话负责人,因此现在它与旧 tty 无关)但我明白了,但不明白为什么。人输出。但不是交互式的。当我按下 Ctrl-z 时,当我按下 'q' 时它变成交互式的,它安静并返回到我的 prog(父级)。所以问题是:

  1. 请解释一开始发生了什么(为什么我必须按 ctrl-z,请阅读上文)
  2. 为什么 man 在那个 shell 中有一些输出?
  3. 在没有连接任何 tty 的情况下,人如何做到这一点(我用 ps 检查过,man 和 pager 在 TTY 列中有“?”)
  4. 最后:新的会话领导者如何获得控制终端。除此之外还有什么办法open(/dev/tty)吗?
0 投票
1 回答
1358 浏览

linux - 将 /dev/ttySDIO0 的内容重定向到文件

有没有办法重定向 tty 设备 (/dev/ttySDIO0) 文件的内容,以便可以使用文件 IO 操作管理其内容。我不喜欢在这里使用“猫”。

谢谢你。

0 投票
3 回答
4279 浏览

perl - 写入 STDOUT 和打开“/dev/tty”的文件句柄有什么区别?

这两个例子有什么区别?

0 投票
1 回答
191 浏览

ssh - 以 root 和非 root 帐户登录时 OpenSSH 的行为

我正在为 SSH 编写一个 PAM 模块来强制执行一层身份验证。为此,我需要 PAM 模块中的 close_session() 和 pam_sm_setcred() 函数中的终端 ID,而 OpenSSH 将其硬编码为“ssh”。我对 OpenSSh 代码做了一些更改,因此它可以正确设置终端 ID。这些变化是:

在 session.c 的 session_pty_req(Session *s) 函数中添加 do_pam_set_tty() 并在 monitor_wrap.c 的 mm_pty_allocate() 函数中添加 do_pam_set_tty()

它适用于 root 并且我在 pam_sm_cred() 和 pam_sm_close_session() 函数中获得了适当的 tty。

但是使用相同的代码,当我尝试通过非 root 帐户进行 ssh 时,我在 pam_sm_close_session() 中获得了 tty,但在 pam_sm_cred() 中没有。我不确定为什么 ssh 对于 root 和非 root 帐户的行为不同。

是否有任何东西会触发 root 和非 root 帐户的 SSH 行为,或者任何人都可以建议我这里有什么问题。我不知道我该如何继续,如果有人能给我一些指示,那就太好了。