ローカルログインの代わりに仮想マシンログインを設定する[閉じる]

ローカルログインの代わりに仮想マシンログインを設定する[閉じる]

以前に質問がありましたが、これに関連して一部の人は正しい手順を探していましたが、こちらはそれをどのように実装するかを探していました。後ろの話が必要な方は参考にしてください私の最初の質問

ローカルデバイスがあります。私は「ローカルアクセス」をしたい唯一の人です。このデバイスをcharles.localと呼びます。

私はそれをしたいので、addusr bobを実行するとVM bob.charles.localが起動します。

Bobがコンピュータにログインすると、彼は自分のミニ環境に入ります。

私はオペレーティングシステムの完全なインスタンスを使用して仮想マシンを起動する方法を知っています。これは私がやりたいことではありませんが、必要に応じてモードを作成し、Linuxを使用してローカルマシンを管理する方法とfdiskは開発用のループを作成します。

  1. initは私が望むログインプロセスを処理できるので、ログイン画面が表示され、bobがログインすると自動的に彼をVMに入れます。それともKerberusなどの別々のログインサーバーが必要ですか?
  2. 追加のユーザーを追加せずに1人のユーザーだけで仮想マシンを起動し、Bobが通常どおりマシンにログインしたように見えるようにすることは可能ですか?
  3. トレース、skel、ログイン、ログアウト、adduser、deluser、passwd、Shadow、構成ファイルを確認できます。 initd設定を変更する必要がありますか?このボールを転がすために必要な他の構成はありますか?
    1. VMMに加えて、他の特定のソフトウェアが必要ですか?

私はクラスがマシンにログインし、実際のマシンにゼロにアクセスできるようにローカルデバイスを設定しようとしています。だから彼らは他の学生を邪魔することなく最小限の入力でルートを操作することができます。他のすべてはその環境で処理されます。

ベストアンサー1

コメントを提示するのに十分なポイントはありませんが、これはあなたの質問に答えるかもしれません。

私が正しく理解したら、ローカルユーザーがログインできるようにし、ユーザーがログインしたら、最初から新しいVMを起動し、同じ名前でユーザーセッションを自動的に設定しますか?あなたが要求するものを正確に理解しているなら、それは美しい髪を得るための迅速な方法です。

ユーザーが無制限のローカル電源を持ち、オペレーティングシステム全体を破壊する可能性がありますが、簡単にリセットできることを除いて、目的の「キオスク」モードのように聞こえます。 (この場合は自動的に。)唯一の違いは、特定のシングルユーザーセッションが含まれていないことです。なぜなら、このアイデアが機能するためには、単一のユーザーセッションが実際に必要ではなく、実際に状況を複雑にするからです。 (ただし、シングルユーザーセッションが必要な場合は、少なくともこのソリューションを使用して正しい方向から始めることができます。」ファイルと読み取り/書き込み差分ディスクは、ログインするたびに削除され復元されます。)

まず、いくつかのクイック定義:

  • 「ホスト」または「マシン」:物理マシンです。 Windows、MacOS、Linuxを実行しているかどうかは問題ではありません。各エントリはこの方法で設定できますが、ログオフとシャットダウンをブロックする方法は必ずしも明確ではありません。 (両方ともWindowsとLinuxで実行できることがわかっており、MacOSでは強く疑われています。どちらも起動時に自動的にログインするように設定できます。)

  • 「VM」、「仮想マシン」、または「ゲスト」:ホストマシンで実行される仮想マシン。 Linuxになりたいと思われますが、潜在的なライセンス問題を除いて、Windowsも同様に簡単になります。 (たとえば、ユーザーが権限を操作すると、オペレーティングシステム自体がチェックポイントから完全に再起動されても操作は続行されます。)

各ホストには「ユーザー」セッションがあり、そのユーザーセッション内に透過的なゲストセッションがあります。ユーザーはゲストセッションの存在を見るか、必ず認識します。 (ただし、ホストセッションのセキュリティはこれらのあいまいさに依存してはいけません。そうする必要はありません。)

一般的なステップ:

  1. 起動時に「vmuser」などのロックされたユーザーアカウントに自動的にログインするようにホストを設定します。セッションタイムアウト/ロックとスクリーンセーバーを無効にします。 (画面の電源を切るのは大丈夫ですが、セッションはロックされません。)

  2. 変更できないディスクとロールバックする差分ファイルまたはスナップショットを含むこのユーザーセッション用の仮想マシンを作成します。

  3. 初期ホストログイン(起動時)時に、ログインスクリプトがフルスクリーンモードでVMセッションを開始するようにします(あいまいに上書きされた「ホスト」キー(スクロールロックなど)を使用)。後で追加の作業を実行する必要があるため、スクリプトは仮想マシンが終了するのを待つ必要があります。

  4. その後、仮想マシンはrootまたは管理者権限を持つユーザーに自動的にログインします。

  5. ゲストログアウトスクリプト:仮想マシン全体をシャットダウンします。

  6. VMがシャットダウンすると、ログインスクリプトが復元されます。事前定義されたスナップショットにロールバックされます。ホストユーザーセッションが終了しない場合、スクリプトは仮想マシンを再起動する必要があります。 (これは自動的に再度ログインし、まったく新しいセッションに戻ります。)

  7. ホストログオフスクリプト:ログインスクリプトを中断したり、ロールバック操作を実行した後にVMバックアップを開始しないようにするさまざまな方法の1つで、ログインスクリプトと通信する必要があります。どちらの場合でも、目的の作業は仮想マシンの電源を切ることです(「ハード」電源を切ることも許可されています)。仮想マシンをスナップショットにロールバックします。その後、ホストが自動的に再ログインされるようにするか(サービスまたはデーモンの監視が必要で、VMの再起動を完全に回復する必要があります)、ホストの電源を完全に切ってください。

  8. ユーザーが閉じた場合所有者、先制的に再ログインするようにスクリプトと通信したり、ホストをシャットダウン(冗長)しない限りログアウトすると(ユーザーセッションが最初にログアウトするため)、同じことが発生します。

  9. ホストユーザーセッションがログインするたびに(通常、ホスト起動時に実行するよりもタイミングの面でより信頼性が高い)、ログインスクリプトは起動する前に常にVMをスナップショットにロールバックする必要があります(または少なくとも確認する必要があります)。 、前回完全に終了していない場合に備えて。あるいは、本当に強力になりたい場合は、ホスト起動スクリプトは常に必要なクリーンアップ操作をすべて実行できます。つまり、プロセス間通信に使用できるすべてのファイルを削除し、仮想マシンをロールバックするなどの操作を実行できます。スクリプトはこれらすべてのプロセス中に開始され、ログインスクリプトは続行する前にプロセスが完了するのを待ちます。

これにより、ユーザーは「rm -rf /」を含む仮想マシンで必要なすべての操作を実行でき、仮想マシンのシャットダウン、ホストユーザーセッションのログアウト、またはホストの再起動によって自動的に復元されます。ホストユーザーセッションが合理的にロックされ、安全で変更不可能なVMディスクがユーザーによって削除されない限り(スナップショットではなくこの方法で設定するのが良い理由です)、これは本当に良い考えです。ユーザーが仮想マシンから離れてもシステムを台無しにすることは非常に困難です。 (物理的なアクセス権を持っている人は誰でもコンピュータを損傷する可能性があります。ホストオペレーティングシステムを悪用するとソリューションが破損する可能性があることは言うまでもありませんが、少なくともゲストを悪用する限り、ゲストOSはとにかくロールバック/リセットされます。永続的なゲストOSの破損の面で主に問題になります。

私は各個々のステップが可能であることを知っていて、それらの多くのステップを直接実行したので、これらの行に従うことが可能であると確信しています。概要にかなり近いです。

一般的な要件は、Googleで検索できる「キオスクモード」の概念です。もちろん、キオスクパターンには、ユーザーエクスペリエンスをロックすることも含まれることがよくあります。これはあなたが望むものとは反対ですが、近づくことができるいくつかのアイデアが似ていますが、他の技術(コンテナなど)を使用するというアイデアがあるかもしれません。

頑張ってください!

おすすめ記事