如果我有一个终端模拟器(比如说xterm
),默认情况下它会连接到一个伪终端,例如/dev/pts/3
我想知道是否可以将其直接连接到,比如说tty1
?
我可以连接到 atty
并让它显示登录提示,就好像我真的在那里一样(例如tty
按Ctrl+ Alt+ )?F1
答案1
是和不是。您可以重定向其子级的输入/输出流(可能是您的 shell),但xterm
在那里几乎不会参与。拥有该 pty 的主端 - 它在创建的进程中xterm
进行打开操作。但它/dev/ptmx
/dev/pts/3
放弃它- 您的 shell 现在拥有该 pty,使其xterm
成为会话领导者。所有xterm
操作都是从键盘获取输入并将其传递到 shell,然后从 shell 获取输出并将其传递到屏幕。通过这种方式xterm
执行多路复用功能 - 在伪终端之间细分和重定向输入和输出,但一旦 pty 启动,这里就没有太多其他相关的了。
不过,虚拟控制台则是另一回事。如果您的用户帐户被分配了适当的文件系统权限,您可以以更简单的方式从其他进程或其他终端读取它们并写入它们,例如,您不需要通过主端传递输入/输出来对话进程运行在从机端。您可以通过几乎所有重要的方式轻松完成这些事情除了所关心的地方login
。它会杀该设备上的任何监听器都只接受键盘输入。这就是它的工作。
不过,我怀疑您正在寻找一些身份验证解决方案。您可以通过以下方式获得几乎相同级别的安全性:
ssh -t localhost 'exec some process'
这将安全地提示您进行身份验证,然后将您登录到计算机并执行一些过程在一个新的伪终端中 - 你可以从 做到这一点xterm
,比如说。