How do I create a minimal chroot jail in macOS? I am trying to figure out the minimal things I need to do to create a chroot jail in macOS. I have seen a few scripts online (https://github.com/skissane/mkjail, https://github.com/jsarenik/Mac-Hroot), but I am not sure what parts are necessary vs. what parts are required for it to work.
TL;DR I could not get it to work. I have mentioned some ways to setup that might work for some. Will note the errors I faced at the end.

The only thing you need for the most minimal setup is a working shell (like /bin/bash). A curious case of simple but not easy. Here's how it's supposed to be :
Required

mkdir -p /tmp/chroot/bin /tmp/chroot/usr/lib
cp /bin/bash /tmp/chroot/bin

Here, you need some libs for bash to work. There are 4 ways you can go about this:
Route 1

otool -L /bin/bash | sed 1d | awk '{print $1}'
cp 'em over to /tmp/chroot/usr/lib
For every lib above, run 1 (replace /bin/bash) &amp; 2

Perhaps dyld as well, it is not mentioned in shared lib though.
Route 2

cp /usr/lib/dyld /tmp/usr/lib
sudo chroot /tmp/chroot /bin/bash
Above will throw error for some library not loaded, cp it like Route 1.2

Route 3

cp /usr/lib/* /tmp/chroot/usr/lib
cp /usr/lib/system/* /tmp/chroot/usr/lib/system

Very convenient but sorta defeats the purpose
Route 4

Use a script to recursively run otool and cp in Route 1.

This is what the above scripts you mentioned do.
Either way, once you have all necessary libs copied over, chroot should just run.

Why I couldn't get it to run?
% otool -L /bin/bash
/bin/bash:
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
% ls /usr/lib/libncurses.5.4.dylib
ls: /usr/lib/libncurses.5.4.dylib: No such file or directory
% ls /usr/lib/libSystem.B.dylib
ls: /usr/lib/libSystem.B.dylib: No such file or directory

As you can see above, the files simply show up as non-existent. I tried disabling SIP and logging in as root user - no dice. Perhaps someone more knowledgable than me can give some input on why this happens.
Since I have no access to them libs, I simply cannot create a chroot environ. I did try with sh and zsh. I tried 'em scripts in the link as well. Same story.
If it does work for you, do share your method. Btw, those 2 errors you get are missing bin/libs related.
credits