web-dev-qa-db-ja.com

chrootでユーザーのセッションにログイン

次のパーティション構成のUSBサムスティックを持っています。

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

ライブ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)ログインすると、すでにgnomeセッションが実行されているコンピュータUbunu OSに最初にログインしている場合でも、X startxを起動できますか?

4
kaligne
  1. 質問の説明に従ってchrootを実行し、次にsu - fred(または名前が何であれ)またはexec su - fredを実行します。
  2. chroot /mnt /bin/su - fredを実行して、suがchroot環境で最初に実行されるようにします。

上記のどちらも、fredユーザーが/mnt/etc/passwdで定義されていることを前提としています。

OR

  1. chroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bashを実行して、chrootの最初からユーザーIDを設定します。 chroot呼び出しマニュアル は、

    --userspecおよび--groupsオプションによって実行されるユーザー名とグループ名のルックアップは、chrootの外部と内部の両方で実行され、chroot内でのルックアップの成功が優先されます。

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

  2. 「chrootされたユーザーセッションにログインするにはどうすればよいですか?」おそらく、文字どおりの答えchroot /mnt /bin/loginが機能します。これが機能する場合、ユーザー名とパスワードを要求するという点で、通常のログインに最も似ています。 (おそらく)いずれにしても、chroot環境のwhoコマンドがユーザー名(およびログイン時刻など)を報告する唯一の回答であり、最善の策かもしれません環境のより難解な機能のいくつかを使用する。 (cron/crontab/atpasswdコマンド、ファイルシステムクォータ、アカウンティングシステムなどについて[推測]を考えています。Iこれらまたは他のソフトウェアが実際のUIDを見ただけでは満足できないかどうか、または理由がわからない。)もちろん、これは最初の2つの回答と同様に、chrooted環境。

    これは機能しない可能性があります。 loginの一部のバージョンについて、標準的ではない方法(このような方法)で実行されていることを検出し、一緒にプレイすることを拒否していることを漠然と思い出しているようです。しかし、詳細を思い出すことはできず、2分の検索で何も見つけることができません。