chrootを使用してユーザーセッションにログインします。

chrootを使用してユーザーセッションにログインします。

次のパーティション構成のUSBサムスティックがあります。

sdb
  sdb1  -> root partition '/'
  sdb2  -> /home partition 

Live CDから起動する場合、またはコンピュータハードウェアの現在のUbuntu OSから起動している場合は、chroot次のことができます。

mount /dev/sdb1 /mnt
mount /dev/sdb2 /mnt/home
chroot /mnt /bin/bash

この場合、私のプロンプトは次のようになります[root@archiso]。問題は、私のユーザーアカウントにログインしたいのですが、/mnt/home/me方法がわからないということです。追加の目標は、このユーザーセッションでX(およびすべてのデスクトップ管理者)を開始することです。

だから私が解決しなければならない問題は次のとおりです。

1) chrootの後、私のユーザーセッションにどのようにログインしますか?

2) 一度ログインすると、startxUbunu OSを使って最初にコンピュータにログインし、gnomeセッションがすでに実行されていてもXを起動できますか?

答え1

  1. chroot質問に記載されているとおりに実行してからsu - fred(またはあなたの名前が何であれ)、またはを実行してくださいexec su - fred
  2. chroot環境で最初に実行するようにchroot /mnt /bin/su - fred実行します。su

上記の両方がfredユーザーにあると仮定します/mnt/etc/passwd

または

  1. 実行してchroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bashchrootから始めて、ユーザーIDを設定します。これchrootマニュアル呼び出し説明する、

    --userspec オプションで実行されるユーザー名とグループ名の照会は、--groupschroot の外部と内部で実行され、chroot 内の正常な照会が優先されます。

    ログインシェルで呼び出されたように動作するように指示するには-l(または--login)を追加することを検討してください。つまり、読み取りなどを指示してください。bash/etc/profile~/.bash_profile

  2. 質問は、「ルートが変更された後にどのようにユーザーセッションにログインするのですか?」です。ほとんどの場合、文字通りの答えはうまくchroot /mnt /bin/loginいきます。これが機能すると、ユーザー名とパスワードを要求するという点で、通常のログインと最も似ています。これは(とにかく)whochroot環境のコマンドにユーザー名(およびログイン時間など)を報告させる唯一の答えであり、おそらく環境のより難解な機能のいくつかを使用するための最良の選択肢です。 (私はcron// crontabatコマンドpasswd、ファイルシステムクォータ、会計システムなどについての[推測]を考えています。これらのソフトウェアや他のソフトウェアが実際のデータUIDを見るだけでは満足できないのか、なぜそうなのかわかりません。)もちろん、最初の2つとは異なり、答えは同じです。これはchroot、ed環境で定義されているユーザーとパスワードに対して機能します。

    この方法は機能しない可能性があります。一部のバージョンlogin では、非標準的な方法(このような)で動作していることを検出し、協力を拒否したことを漠然と覚えているようです。しかし、具体的な内容は覚えておらず、2分間検索しても何も見つかりませんでした。

関連情報