Mount

使用 chroot 登錄到使用者的會話

  • May 2, 2015

我有一個帶有以下分區方案的 U 盤:

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

如果我從 Live CD 啟動,或者只是從位於電腦硬體上的目前 Ubuntu 作業系統啟動,我可以chroot這樣:

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

在這種情況下,我的提示類似於[root@archiso]. 問題是我想登錄我的使用者帳戶/mnt/home/me,但我不知道該怎麼做?另一個目標是從此使用者會話啟動 X(和任何桌面管理器)。

所以我需要解決的問題如下:

  1. chroot 後如何登錄我的使用者會話?

2)一旦我登錄,是否可以啟動 X startx,即使我最初登錄我的電腦 Ubunu OS,並且已經執行了 gnome 會話?

  1. 按照問題中的描述執行chroot,然後執行su - fred(或任何您的名字)或exec su - fred.
  2. chroot /mnt /bin/su - fred,這樣su將是在 chroot 環境中執行的第一件事。

請注意,以上都假設您的fred使用者是在/mnt/etc/passwd.

或者

  1. chroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bash,從 chroot 開始設置您的使用者身份。chroot呼叫手冊說,

--userspec 由and選項執行的使用者和組名查找--groups在 chroot 外部和內部完成,chroot 內部的成功查找優先。

考慮添加-l(or --login) 來告訴bash它好像作為登錄 shell 被呼叫一樣;即,告訴它閱讀/etc/profileand~/.bash_profile等。 4. 問題是,“一旦我被 chroot,我如何登錄到我的使用者會話?” 字面上的答案很可能chroot /mnt /bin/login會起作用。如果這可行,它將與普通登錄最相似,因為它會要求輸入使用者名和密碼。它(可能)是唯一的答案(無論如何,這四個)會導致whochroot 環境中的命令報告您的使用者名(和登錄時間等),並且可能是使用其中一些的最佳選擇更多環境的深奧特徵。(我在想

$$ speculating $$關於cron// crontab,命令atpasswd文件系統配額,會計系統等。我不知道這些或任何其他軟體是否或為什麼不滿足於僅查看您的真實 UID。)當然這個,比如前兩個答案將對chrooted 環境中定義的使用者和密碼進行操作。 這可能行不通。我似乎隱約記得某些版本login 檢測到它以非標準方式執行(像這樣)並拒絕一起玩。但我記不起具體細節,在兩分鐘的搜尋中也找不到任何東西。

引用自:https://unix.stackexchange.com/questions/199960