chroot 权限被拒绝!但我是root!

Bro*_*lfe 8 chroot password permissions

我正在尝试 chroot 到旧 HD 以更改忘记的密码,但 chroot 说权限被拒绝?是什么赋予了?我是根!我试图 chroot 的硬盘是一个旧版本的 edUbuntu 7.10 可能与它有什么关系?

root@h:~# chroot /media/usb0/
chroot: failed to run command `/bin/bash': Permission denied
Run Code Online (Sandbox Code Playgroud)

Bab*_*ton 12

ubuntu 中的 Chroot 或恢复 Ubuntu、Debian Linux

从 ubuntu 的 livecd 启动,如果你安装的是 32 位系统,使用 32 位 Live CD,如果 64 位使用 64 位 live cd。

使用挂载 Linux 分区

# sudo blkid
Run Code Online (Sandbox Code Playgroud)

输出:

sysadmin@localhost:~$ sudo blkid
[sudo] password for sysadmin: 
/dev/sda1: UUID="846589d1-af7a-498f-91de-9da0b18eb54b" TYPE="ext4" 
/dev/sda5: UUID="36e2f219-da45-40c5-b340-9dbe3cd89bc2" TYPE="swap" 
/dev/sda6: UUID="f1d4104e-22fd-4b06-89cb-8e9129134992" TYPE="ext4"
Run Code Online (Sandbox Code Playgroud)

这里我的 / 分区是 /dev/sda6

挂载 / 分区到挂载点使用

# sudo mount /dev/sda6 /mnt
Run Code Online (Sandbox Code Playgroud)

然后挂载 linux 接入点、Linux 设备、Proc、sys

Linux 设备

# sudo mount --bind /dev/ /mnt/dev
Run Code Online (Sandbox Code Playgroud)

proc系统信息

# sudo mount --bind /proc/ /mnt/proc
Run Code Online (Sandbox Code Playgroud)

内核信息到用户空间

# sudo mount --bind /sys /mnt/sys
Run Code Online (Sandbox Code Playgroud)

如果我们需要启用网络,我们需要执行以下步骤(可选)。

# cp /etc/resolv.conf /mnt/etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

将 Linux 根目录更改为我们之前在第 2 步中安装的设备

# sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)

现在尝试更改 root 密码,它将起作用。


hsp*_*ans 8

您无法在 chroot 中执行/bin/bash,这很可能是因为您的文件系统是使用noexec选项挂载的,也可能使用nosuid。您可以使用 mount 命令检查此运行情况,因为这将显示挂载选项,您可能需要使用其他选项重新挂载文件系统。