有没有办法在 macOS 的目录中重新创建 /dev 以进行 chroot 操作?
Is there a way to recreate /dev within a directory on macOS for the purpose of chroot-ing?
我一直在 chroot 目录中试验 运行 应用程序。
许多应用程序和二进制文件需要访问 /dev 中的项目,例如 /dev/null 和 /dev/random 才能工作。
有没有办法为此在目录中重新创建或绑定挂载 /dev 文件系统?
我尝试了以下但没有成功:
(其中 root 是我要 chroot 到的目录)
$ sudo bindfs -o dev -o allow_other /dev ./root/dev/
导致:
$ cat ./root/dev/urandom
cat: ./root/dev/urandom: Operation not permitted
$ mount -t devfs devfs ./root/dev
导致:
$ cat ./root/dev/urandom
cat: ./root/dev/urandom: Device not configured
尝试使用 mknod 手动制作设备也不起作用。
$ sudo mknod null c 1 3
$ sudo chmod 666 ./null
$ cat ./null
cat: ./null: Operation not permitted
有没有办法在 chroot 中使用现有的 /dev 项目或重新创建它们?
不幸的是,互联网上似乎没有太多关于 OSX/macOS 使用 chroot 的文档。
操作系统详细信息:macOS Mojave,10.14.6。已启用 SIP。
嗯,这个主要是我笨
sudo mount -t devfs devfs ./dev
工作正常。
如果上面的命令是运行没有root,它会在./dev 中绑定devfs 设备,但是所有设备都会响应"Device not configured" 错误。如果它是 运行 作为 root,所有 ./dev 设备将按预期工作。
我一直在 chroot 目录中试验 运行 应用程序。
许多应用程序和二进制文件需要访问 /dev 中的项目,例如 /dev/null 和 /dev/random 才能工作。
有没有办法为此在目录中重新创建或绑定挂载 /dev 文件系统?
我尝试了以下但没有成功:
(其中 root 是我要 chroot 到的目录)
$ sudo bindfs -o dev -o allow_other /dev ./root/dev/
导致:
$ cat ./root/dev/urandom
cat: ./root/dev/urandom: Operation not permitted
$ mount -t devfs devfs ./root/dev
导致:
$ cat ./root/dev/urandom
cat: ./root/dev/urandom: Device not configured
尝试使用 mknod 手动制作设备也不起作用。
$ sudo mknod null c 1 3
$ sudo chmod 666 ./null
$ cat ./null
cat: ./null: Operation not permitted
有没有办法在 chroot 中使用现有的 /dev 项目或重新创建它们?
不幸的是,互联网上似乎没有太多关于 OSX/macOS 使用 chroot 的文档。
操作系统详细信息:macOS Mojave,10.14.6。已启用 SIP。
嗯,这个主要是我笨
sudo mount -t devfs devfs ./dev
工作正常。
如果上面的命令是运行没有root,它会在./dev 中绑定devfs 设备,但是所有设备都会响应"Device not configured" 错误。如果它是 运行 作为 root,所有 ./dev 设备将按预期工作。