Est-il possible de changer à quel terminal un émulateur de terminal est connecté?

Si j'ai un émulateur de terminal (par exemple, xterm ) par défaut, il se connecte à un pseudoterminal comme /dev/pts/3

Ce que je voudrais savoir, c'est s'il est possible de le connecter directement à, par exemple, tty1 ?

Pourrais-je me connecter à un tty et lui montrer l'invite de connection comme si j'étais vraiment à ce tty (en appuyant sur Ctrl + Alt + F1 par exemple)?

Oui et non. Vous pouvez redirect les stream d'input / sortie de votre enfant – probablement votre shell – mais xterm sera peu impliqué. xterm possède le côté maître de ce pty – il ouvre un /dev/ptmx et crée /dev/pts/3 dans le process. Mais il le donne loin – votre shell possède cette pty maintenant, comme xterm fait le leader de la session. Tout ce que xterm fait est de prendre l'input du keyboard et de la transmettre au shell et de prendre la sortie du shell et de le passer à l'écran. De cette façon, xterm effectue des fonctions de multiplexage – subdivisant et redirigeant l'input et la sortie entre pseudoterminaux, mais pas grand-chose d'autre n'est pertinent ici une fois que le pty est en place.

Les consoles virtuelles, cependant, sont une autre affaire. Si votre count d'user dispose des permissions appropriées pour le système de files, vous pouvez les lire et les écrire à partir d'autres process – ou d'autres terminaux – de manière plus simple. Vous n'avez pas besoin d'envoyer des inputs / sorties par un maître pour parler process en cours d'exécution côté esclave. Vous pouvez facilement faire ces choses de presque toutes les façons qui countnt, sauf en ce qui concerne la login . Il va tuer n'importe quel auditeur sur cet appareil et n'acceptera que l'input au keyboard. C'est son travail.

Pourtant, je soupçonne que vous cherchez une solution d'authentification. Vous pouvez get pratiquement le même niveau de security avec:

 ssh -t localhost 'exec some process' 

Cela vous invitera à vous authentifier en toute security, puis à vous connecter à la machine et à exécuter un process dans un nouveau pseudoterminal – vous pouvez le faire à partir de xterm , par exemple.