为什么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用户,因此您不需要使用sudo
或su root
。
如果您需要使用非root用户帐户,则需要先创建它,然后以(在chroot中)以该用户身份登录
login myuser
要么
su - myuser
接下来,如果您想让该用户使用sudo
,您需要将其添加到admin
组中以进入chroot。
有一个比你想象的更多的工作chroot监狱。 在您的示例中,这是因为sudo
命令位于/bin
并且在新根目录中不可用。 但是只是将基础软件包安装到新的根目录不会起作用,你还需要为jail安装一个/ proc
, /sys
和/dev
,可能会创建一些符号节点,绝对是一个tty
并且对于大多数实际来说目的,它可能不会没有random
工作。 你用mknod
做到了。
现在这一切听起来很复杂,说实话,它有点牵扯。 基于Debian的发行版有一种更简单的处理方式,即debootstrap
,您可以在Ubuntu帮助站点中找到基本的操作指南 。