ターミナルエミュレーター(たとえば、xterm
)がある場合、デフォルトで/dev/pts/3
のような疑似端末に接続します。
私が知りたいのは、たとえばtty1
に直接接続できるかどうかです。
tty
に接続して、実際にそのtty
にいるかのようにログインプロンプトを表示させることはできますか(を押して) Ctrl+Alt+F1 例えば)?
はいといいえ。子のイン/アウトストリーム(おそらくシェル)をリダイレクトできますが、xterm
はほとんど関与しません。 xterm
はそのptyのマスター側を所有します-それは/dev/ptmx
でオープンを行い、その過程で/dev/pts/3
を作成します。しかし、それはそれを与えます-xterm
がそれをセッションリーダーにするので、あなたのシェルは今そのptyを所有しています。 xterm
が行うのは、キーボードからの入力を取得してシェルに渡し、シェルからの出力を取得して画面に渡すことだけです。このようにして、xterm
は多重化機能を実行します-疑似端末間で入力と出力を細分化してリダイレクトしますが、ptyがアップすると、ここでは他にあまり関係がありません。
ただし、仮想コンソールは別の問題です。ユーザーアカウントに適切なファイルシステム権限が割り当てられている場合は、他のプロセス(または他の端末)から簡単な方法で読み取りと書き込みを行うことができます。たとえば、マスター側を介して入力/出力を渡して会話する必要はありません。スレーブ側で実行されているプロセス。 login
が関係する場合、exceptionに関係するほぼすべての方法で、これらのことを簡単に行うことができます。killそのデバイス上のすべてのリスナーであり、キーボード入力のみを受け入れます。それがその仕事です。
それでも、あなたは何らかの認証ソリューションを探しているのではないかと思います。次の方法で、実質的に同じレベルのセキュリティを取得できます。
ssh -t localhost 'exec some process'
これにより、認証のプロンプトが安全に表示され、マシンにログインして、新しい疑似端末でsome processを実行します。たとえばxterm
から実行できます。