美文网首页LinuxLinux学习之路
APUE读书笔记-19伪终端(12)

APUE读书笔记-19伪终端(12)

作者: QuietHeart | 来源:发表于2020-10-09 07:43 被阅读0次

6、使用pty程序

我们现在,通过命令行选项,来看看使用pty程序的各种不同的例子。

如果我们的shell是Korn shell,我们可以执行:

pty ksh

启动一个新的shell,这个shell运行在伪终端之下。

如果文件ttyname就是我们在18章的那个程序,我们可以如下运行pty程序:

$who
sar  :0      Oct  5 18:07
sar  pts/0   Oct  5 18:07
sar  pts/1   Oct  5 18:07
sar  pts/2   Oct  5 18:07
sar  pts/3   Oct  5 18:07
sar  pts/4   Oct  5 18:07        pts/4 is the highest PTY currently in use
$ pty ttyname                    run program in Figure 18.16 from PTY
fd 0: /dev/pts/5                 pts/5 is the next available PTY
fd 1: /dev/pts/5
fd 2: /dev/pts/5

(1)utmp文件

在第6章,我们叙述了utmp文件,这个文件记录了所有当前登陆到一个UNIX系统上面的用户。

问题是,一个在伪终端上面运行程序的用户,是否被当做登陆的用户?

在远程登陆中,telnetd和rlogind,显然会为在伪终端上面登陆的用户创建一个utmp文件中的条目。然而,如果用户从窗口系统或者某个程序(例如script)中运行shell于伪终端上,是否应当在utmp文件中有对应的条目,却有许多争议。有些系统会记录这些,有些却不会。如果一个系统没有在utmp文件中记录这些,那么who程序就通常不会显示相应的、被使用的伪终端。

如果utmp文件没有将other用户的写权限打开(这通常被认为是一种安全漏洞),那么任意使用伪终端的应用程序并不能写这个文件。

相关文章

  • APUE读书笔记-19伪终端(12)

    6、使用pty程序 我们现在,通过命令行选项,来看看使用pty程序的各种不同的例子。 如果我们的shell是Kor...

  • APUE读书笔记-19伪终端(15)

    (6)通过非交互的方式驱动交互程序 尽管我们觉得pty可以运行任何协作处理进程(甚至一个协作处理进程是交互的进程)...

  • APUE读书笔记-19伪终端(16)

    (7)pty程序的do_driver函数 通过我们自己写的被pty调用的driver程序,我们可以以任何需要的方式...

  • APUE读书笔记-19伪终端(5)

    查看长时间运行的程序的输出 如果我们有一个程序,那个程序运行很长的时间,我们可以在任何一种标准的shell下面将这...

  • APUE读书笔记-19伪终端(2)

    2、概述 伪终端的意思是,这个终端对于应用程序来说表现像是一个终端,但是实际上它并不是一个真正的终端。下面的图就展...

  • APUE读书笔记-19伪终端(9)

    (3)基于Linux的伪终端 Linux提供访问伪终端的BSD方法,所以可以使用上面代码中同样的函数在Linux上...

  • APUE读书笔记-19伪终端(14)

    (4)script程序 使用pty程序,我们可以如下通过shell脚本执行script程序: 当我们运行这个she...

  • APUE读书笔记-19伪终端(17)

    远程模式 通过使用ioctl的TIOCREMOTE命令,PTY master可以设置PTY slave为远程模式。...

  • APUE读书笔记-19伪终端(3)

    伪终端的典型应用 我们现在将会看看一些伪终端的典型使用。 网络登录服务 伪终端被编译成支持网络登录的服务。典型的例...

  • APUE读书笔记-19伪终端(8)

    (2)基于BSD的伪终端 在基于BSD的系统中,和基于Linux的系统中,我们提供了自己的XSI函数版本。 在我们...

网友评论

    本文标题:APUE读书笔记-19伪终端(12)

    本文链接:https://www.haomeiwen.com/subject/ptxluktx.html