Cam*_*all 6 terminal console pty
如果我有一个终端模拟器(比如xterm
),它默认连接到一个伪终端,比如/dev/pts/3
我想知道的是是否可以将它直接连接到,例如,tty1
?
我可以连接到 atty
并让它显示登录提示,就好像我真的在那里一样tty
(例如按Ctrl+ Alt+ F1)?
是和不是。您可以重定向其子级的输入/输出流(可能是您的 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
。