次のパーティション構成の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
を起動できますか?
chroot
を実行し、次にsu - fred
(または名前が何であれ)またはexec su - fred
を実行します。chroot /mnt /bin/su - fred
を実行して、su
がchroot環境で最初に実行されるようにします。上記のどちらも、fred
ユーザーが/mnt/etc/passwd
で定義されていることを前提としています。
chroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bash
を実行して、chrootの最初からユーザーIDを設定します。 chroot
呼び出しマニュアル は、
--userspec
および--groups
オプションによって実行されるユーザー名とグループ名のルックアップは、chrootの外部と内部の両方で実行され、chroot内でのルックアップの成功が優先されます。
-l
(または--login
)を追加して、ログインシェルとして呼び出されたかのように動作するようにbash
に指示することを検討してください。つまり、/etc/profile
や~/.bash_profile
などを読み取るように指示します。
「chrootされたユーザーセッションにログインするにはどうすればよいですか?」おそらく、文字どおりの答えchroot /mnt /bin/login
が機能します。これが機能する場合、ユーザー名とパスワードを要求するという点で、通常のログインに最も似ています。 (おそらく)いずれにしても、chroot環境のwho
コマンドがユーザー名(およびログイン時刻など)を報告する唯一の回答であり、最善の策かもしれません環境のより難解な機能のいくつかを使用する。 (cron
/crontab
/at
、passwd
コマンド、ファイルシステムクォータ、アカウンティングシステムなどについて[推測]を考えています。Iこれらまたは他のソフトウェアが実際のUIDを見ただけでは満足できないかどうか、または理由がわからない。)もちろん、これは最初の2つの回答と同様に、chroot
ed環境。
これは機能しない可能性があります。 login
の一部のバージョンについて、標準的ではない方法(このような方法)で実行されていることを検出し、一緒にプレイすることを拒否していることを漠然と思い出しているようです。しかし、詳細を思い出すことはできず、2分の検索で何も見つけることができません。