是否可以更改终端模拟器所连接的 tty?

Cam*_*all 6 terminal console pty

如果我有一个终端模拟器(比如xterm),它默认连接到一个伪终端,比如/dev/pts/3

我想知道的是是否可以将它直接连接到,例如,tty1

我可以连接到 atty并让它显示登录提示,就好像我真的在那里一样tty(例如按Ctrl+ Alt+ F1)?

mik*_*erv 3

是和不是。您可以重定向其子级的输入/输出流(可能是您的 shell),但xterm在那里几乎不会参与。xterm拥有该 pty 的主端 - 它/dev/ptmx在创建的进程中进行打开操作/dev/pts/3。但它泄露了它- 您的 shell 现在拥有该 pty,因此xterm使其成为会话领导者。所有xterm操作都是从键盘获取输入并将其传递到 shell,然后从 shell 获取输出并将其传递到屏幕。以这种方式xterm执行复用功能 - 在伪终端之间细分和重定向输入和输出,但一旦 pty 启动,这里就没有太多其他相关的了。

不过,虚拟控制台则是另一回事。如果您的用户帐户被分配了适当的文件系统权限,您可以以更简单的方式从其他进程或其他终端读取它们并写入它们,例如,您不需要通过主端传递输入/输出来对话进程运行在从机端。您可以通过几乎所有重要的方式轻松地完成这些事情,除了所涉及的地方login。它将杀死该设备上的所有侦听器,并且只接受键盘输入。这就是它的工作。

不过,我怀疑您正在寻找一些身份验证解决方案。您可以通过以下方式获得几乎相同级别的安全性:

ssh -t localhost 'exec some process'
Run Code Online (Sandbox Code Playgroud)

这将安全地提示您进行身份验证,然后将您登录到计算机并在新的伪终端中执行某些进程- 例如,您可以从 执行此操作xterm