使用 chroot 登录用户会话

kal*_*gne 5 chroot partition mount livecd startx

我有一个具有以下分区方案的 USB 拇指棒:

sdb
  sdb1  -> root partition '/'
  sdb2  -> /home partition 
Run Code Online (Sandbox Code Playgroud)

如果我从 Live CD 启动,或仅从位于我计算机硬件上的当前 Ubuntu 操作系统启动,我可以通过chroot以下方式:

mount /dev/sdb1 /mnt
mount /dev/sdb2 /mnt/home
chroot /mnt /bin/bash
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的提示类似于[root@archiso]. 问题是我想登录我的用户帐户/mnt/home/me,但我不知道该怎么做?另一个目标是从此用户会话启动 X(和任何桌面管理器)。

所以我需要解决的问题如下:

1) 被 chroot 后如何登录我的用户会话?

2)一旦我登录,是否可以启动 X startx,即使我最初登录到我的计算机 Ubunu 操作系统,并且 gnome 会话已经在运行?

G-M*_*ca' 8

  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--groups选项执行的用户和组名查找在 chroot 外部和内部完成,优先在 chroot 内部成功查找。

    考虑添加-l(或--login) 来告诉bash它就像作为登录 shell 被调用一样;即,告诉它阅读/etc/profile~/.bash_profile等。

  2. 问题是:“一旦我被 chroot 了,我该如何登录我的用户会话?” 很可能字面的答案chroot /mnt /bin/login, 会起作用。如果这可行,它将最像普通登录,因为它会要求输入用户名和密码。这是(可能)唯一的答案(这四个中,无论如何)会导致whochroot 环境中的命令报告您的用户名(和登录时间等),并且可能是使用其中一些的最佳选择环境的深奥特征。(我想[推测]约cron/ crontab/at时,passwd命令、文件系统配额、会计系统等。我不知道这些或任何其他软件是否或为什么只查看您的真实 UID 可能不满意。)当然,就像前两个答案一样,将对chrooted 环境中定义的用户和密码进行操作。

    这可能行不通。我似乎模糊地想起了一些关于login 检测它以非标准方式运行(像这样)并且拒绝一起玩的版本。但我不记得具体细节,在两分钟的搜索中我找不到任何东西。