次のパーティション構成の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) 一度ログインすると、startx
Ubunu OSを使って最初にコンピュータにログインし、gnomeセッションがすでに実行されていてもXを起動できますか?
答え1
chroot
質問に記載されているとおりに実行してからsu - fred
(またはあなたの名前が何であれ)、またはを実行してくださいexec su - fred
。- chroot環境で最初に実行するように
chroot /mnt /bin/su - fred
実行します。su
上記の両方が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 /mnt /bin/login
いきます。これが機能すると、ユーザー名とパスワードを要求するという点で、通常のログインと最も似ています。これは(とにかく)who
chroot環境のコマンドにユーザー名(およびログイン時間など)を報告させる唯一の答えであり、おそらく環境のより難解な機能のいくつかを使用するための最良の選択肢です。 (私はcron
//crontab
、at
コマンドpasswd
、ファイルシステムクォータ、会計システムなどについての[推測]を考えています。これらのソフトウェアや他のソフトウェアが実際のデータUIDを見るだけでは満足できないのか、なぜそうなのかわかりません。)もちろん、最初の2つとは異なり、答えは同じです。これはchroot
、ed環境で定義されているユーザーとパスワードに対して機能します。この方法は機能しない可能性があります。一部のバージョン
login
では、非標準的な方法(このような)で動作していることを検出し、協力を拒否したことを漠然と覚えているようです。しかし、具体的な内容は覚えておらず、2分間検索しても何も見つかりませんでした。