ターミナルエミュレータが接続されているttyを変更できますか?

ターミナルエミュレータが接続されているttyを変更できますか?

端末エミュレータ(例xterm:)がある場合は、デフォルトで擬似端末に接続されます。/dev/pts/3

直接接続できるかどうか疑問に思いますtty1

に接続して、tty実際にそこにあるようにログインプロンプトを表示させることはできますか(例:tty++ CtrlAltF1

答え1

はい、いいえ。その子(おそらくシェル)の入出力ストリームをリダイレクトできますが、xtermそこにはほとんど関与しません。 ptyを所有するマスター - ptyを作成したプロセスでxterm開くを実行します。しかしそれは/dev/ptmx/dev/pts/3あきらめるxterm- これでシェルは pty を所有してセッションリーダーになります。それがxtermすることは、キーボードから入力を受け取り、シェルに渡し、次にシェルから出力を取得して画面に渡すだけです。このようにxterm多重化機能が実行される。疑似端末間で入力と出力を細分化してリダイレクトしますが、一度ptyが起動すると、ここではあまり関係がありません。

しかし、仮想コンソールは話が異なります。ユーザーアカウントに適切なファイルシステム権限が割り当てられている場合は、他のプロセスまたは他の端末からその権限を読み、より簡単な方法で作成できます。たとえば、プロセスと通信するためにマスターを介して入出力を渡す必要はありません。奴隷側から。ほとんどすべての重要な方法でこれらのタスクを簡単に実行できます。とは別に気になるところlogin。そうだろう殺すこのデバイスのすべてのリスナーはキーボード入力のみを許可します。それがまさにそのことです。

しかし、私はあなたが認証ソリューションを探していると思います。次のように、ほぼ同じレベルのセキュリティを実現できます。

ssh -t localhost 'exec some process'

これにより、認証を求めるメッセージが安全に表示され、コンピュータにログインして次のことを実行します。いくつかのプロセス新しい疑似ターミナルでは、xterm例えば でこれを行うことができます。

関連情報