为什么sudo命令在chroot中不起作用?

我刚刚在我的64位系统上安装了32位chroot 。 它说,在chroot环境中, sudo命令不起作用

sudo:命令未找到

此外,当我尝试su root命令时,我的密码不起作用( su: authentication failure )。 他们想要什么密码?

我对Ubuntu很新,所以实际上我并不知道自己在做什么。 我只是想按照说明操作。


我只是通过命令启动chroot解决了这个特殊问题:

 katarina@ubuntu:~$ schroot -c oneiric_i386 -u root 

而不是我第一次使用的那个:

 katarina@ubuntu:~$ schroot -a 

我还有其他一些问题,但我想这不是这个问题。

在我看来,问题更多的是不了解chroot的作用。

它将/移动到你告诉它的任何地方,所以没有/ bin,/ sbin或/ usr。

这意味着你不再拥有sudo,因为它存在于其中一个目录中。

您必须在chroot的环境中安装sudo:

 apt-get install sudo 

当您启动chroot环境时,您通常已经是root用户,因此您不需要使用sudosu root

如果您需要使用非root用户帐户,则需要先创建它,然后以(在chroot中)以该用户身份登录

 login myuser 

要么

 su - myuser 

接下来,如果您想让该用户使用sudo ,您需要将其添加到admin组中以进入chroot。

有一个比你想象的更多的工作chroot监狱。 在您的示例中,这是因为sudo命令位于/bin并且在新根目录中不可用。 但是只是将基础软件包安装到新的根目录不会起作用,你还需要为jail安装一个/ proc/sys/dev ,可能会创建一些符号节点,绝对是一个tty并且对于大多数实际来说目的,它可能不会没有random工作。 你用mknod做到了。

现在这一切听起来很复杂,说实话,它有点牵扯。 基于Debian的发行版有一种更简单的处理方式,即debootstrap ,您可以在Ubuntu帮助站点中找到基本的操作指南 。