如果只有 root 可以打开新创建的伪终端,进程如何使用它?

如果只有 root 可以打开新创建的伪终端,进程如何使用它?

我目前正在学习 TTY 系统,我想创建一个演示应用程序,该应用程序打开/dev/pts/ptmx后将创建一个新终端,然后让一个进程创建一个新会话,该会话将打开这个新终端并受其控制。

但有些事情很奇怪。为了打开/dev/pts/ptmx你必须是 root。现在,当您打开 时/dev/pts/ptmx,您会得到一个文件描述符,您应该将其传递给grantpts,它将“更改与 fd 对应的主伪终端相对应的从属设备的所有者和模式。从属设备的用户 ID调用进程的真实UID”。但是调用进程必须由 root 运行才能打开/dev/pts/ptmx,并且只有在那里你才有文件描述符......什么给出了?

相关内容